giáo trình kiến trúc máy tính ictu

132
MỤC LỤC Chương1...........................................................3 Kiến trúc máy vi tính PC và đơn vị xử lý trung tâm................3 1.1. Các thành phần cơ bản của máy tính số......................3 1.2. Biểu diễn thông tin trong máy tính số......................5 1.3 Kiến trúc cơ bản máy vi tính PC............................14 1.4. Đơn vị xử lý trung tâm CPU (Central Processing Unit)......18 1.4.1. Cấu hình bên ngoài.....................................18 1.4.2. Cấu hình bên trong....................................20 1.4.3. Quản lý bộ nhớ trong chế độ thực và các thanh ghi đoạn.21 1.4.4. Các thanh ghi..........................................23 1.4.5 Quản lý bộ nhớ trong chế độ bảo vệ......................26 1.4.6. Cơ chế đa nhiệm........................................34 1.4.7 Các chế độ xác định địa chỉ toán hạng...................35 1.5. Kỹ thuật đường ống và kỹ thuật xử lý song song mức lệnh. . .39 1.5.1. Kỹ thuật xử lý lệnh kiểu đường ống (Pipeline)..........39 1.5.2. Kỹ thuật ILP (xử lý song song mức lệnh)................40 Chương 2.........................................................42 Tổ chức bộ nhớ trong máy vi tính PC..............................42 2.1. Tổ chức bộ nhớ theo phân cấp..............................42 2.2. Tổ chức cache............................................. 44 2.2.1. Trường hợp mỗi khối chứa một từ (hoặc 1 byte) dữ liệu.44 2.2.2. Trường hợp mỗi khối chứa nhiều từ dữ liệu..............45 2.2.3. Kỹ thuật tập liên hợp..................................46 2.3 Tổ chức bộ nhớ máy vi tính PC..............................46 2.3.1. Cơ chế quản lý bộ nhớ theo phân trang..................47 2.3.2 Cơ chế truy nhập bộ nhớ theo trang......................48 Chương 3.........................................................50 Các phương pháp vào ra dữ liệu trong máy vi tính.................50 3.1. Cấu trúc phần cứng của hệ thống vào/ra dữ liệu............50 3.2. Các phương pháp vào/ra dữ liệu............................50 3.2.1 Phân loại...............................................50 3.2.2 Phương pháp vào/ra dữ liệu theo định trình..............51 3.2.3 Phương pháp vào/ra dữ liệu theo kiểu thăm dò............52 3.2.4 Phương pháp vào/ra dữ liệu theo ngắt cứng...............53 3.2.5 Phương pháp vào/ra dữ liệu theo kiểu DMA (truy nhập trực tiếp bộ nhớ - Direct Memory Access)........................55 1

Upload: ngo-tinh

Post on 18-Jan-2017

691 views

Category:

Education


10 download

TRANSCRIPT

Page 1: Giáo trình kiến trúc máy tính ICTU

MỤC LỤC

Chương1.......................................................................................................................................3

Kiến trúc máy vi tính PC và đơn vị xử lý trung tâm........................................................................3

1.1. Các thành phần cơ bản của máy tính số..................................................................................3

1.2. Biểu diễn thông tin trong máy tính số.....................................................................................5

1.3 Kiến trúc cơ bản máy vi tính PC..............................................................................................14

1.4. Đơn vị xử lý trung tâm CPU (Central Processing Unit)..........................................................181.4.1. Cấu hình bên ngoài..........................................................................................................181.4.2. Cấu hình bên trong......................................................................................................... 201.4.3. Quản lý bộ nhớ trong chế độ thực và các thanh ghi đoạn...............................................211.4.4. Các thanh ghi................................................................................................................... 231.4.5 Quản lý bộ nhớ trong chế độ bảo vệ.................................................................................261.4.6. Cơ chế đa nhiệm..............................................................................................................341.4.7 Các chế độ xác định địa chỉ toán hạng..............................................................................35

1.5. Kỹ thuật đường ống và kỹ thuật xử lý song song mức lệnh.................................................391.5.1. Kỹ thuật xử lý lệnh kiểu đường ống (Pipeline).................................................................391.5.2. Kỹ thuật ILP (xử lý song song mức lệnh)..........................................................................40

Chương 2....................................................................................................................................42

Tổ chức bộ nhớ trong máy vi tính PC...........................................................................................42

2.1. Tổ chức bộ nhớ theo phân cấp..............................................................................................42

2.2. Tổ chức cache.........................................................................................................................442.2.1. Trường hợp mỗi khối chứa một từ (hoặc 1 byte) dữ liệu...............................................442.2.2. Trường hợp mỗi khối chứa nhiều từ dữ liệu....................................................................452.2.3. Kỹ thuật tập liên hợp.......................................................................................................46

2.3 Tổ chức bộ nhớ máy vi tính PC...............................................................................................462.3.1. Cơ chế quản lý bộ nhớ theo phân trang..........................................................................472.3.2 Cơ chế truy nhập bộ nhớ theo trang.................................................................................48

Chương 3....................................................................................................................................50

Các phương pháp vào ra dữ liệu trong máy vi tính......................................................................50

3.1. Cấu trúc phần cứng của hệ thống vào/ra dữ liệu..................................................................50

3.2. Các phương pháp vào/ra dữ liệu..........................................................................................503.2.1 Phân loại........................................................................................................................... 503.2.2 Phương pháp vào/ra dữ liệu theo định trình....................................................................513.2.3 Phương pháp vào/ra dữ liệu theo kiểu thăm dò...............................................................523.2.4 Phương pháp vào/ra dữ liệu theo ngắt cứng....................................................................533.2.5 Phương pháp vào/ra dữ liệu theo kiểu DMA (truy nhập trực tiếp bộ nhớ - Direct Memory

Access)................................................................................................................................. 55

Chương 4....................................................................................................................................57

Các thiết bị vào ra.......................................................................................................................57

4.1 Các thiết bị giao diện và điều khiển vào/ra dữ liệu...............................................................574.1.1 Ngắt và bộ điều khiển ngắt PIC 8259................................................................................57

1

Page 2: Giáo trình kiến trúc máy tính ICTU

4.1.2 Truy nhập trực tiếp bộ nhớ và bộ điều khiển DMAC 8237................................................664.1.3 Vào-ra nối tiếp và thiết bị giao diện vào-ra nối tiếp UART 8250/16450............................734.1.4 Thiết bị giao diện song song..............................................................................................81

4.2. Các thiết bị ngoại vi................................................................................................................844.2.1. Bàn phím..........................................................................................................................844.2.2 Màn hình...........................................................................................................................884.2.3 Đĩa từ................................................................................................................................ 91

2

Page 3: Giáo trình kiến trúc máy tính ICTU

Chương1Kiến trúc máy vi tính PC và đơn vị xử lý trung tâm

1.1. Các thành phần cơ bản của máy tính sốTrong lịch sử, máy tính điện tử được phát triển theo 2 hướng kỹ thuật tách biệt, từ đó sinh ra 2 loại

máy tính là Máy tính tương tự (analog computer) và máy tính số (digital computer). Máy tính tương tự hoạt động trên các loại số liệu liên tục với các mạch điện tử tương tự, còn máy tính số hoạt động trên các loại số liệu rời rạc với các mạch điện tử số. Hiện nay các máy tính số chiếm ưu thế vượt trội nên khi nói đến máy tính người ta cũng thường hiểu ngầm là máy tính số.Máy tính số gồm các thành phần cơ bản như sau:

- Đơn vị xử lý trung tâm (CPU): được chế tạo bởi một mạch vi điện tử có độ tích hợp rất cao, nó có nhiệm vụ đọc mã lệnh là các bit thông tin 0 hoặc 1 từ bộ nhớ chính, giải mã các lệnh này thành một chuỗi các xung điều khiển để điều khiển các khối khác thực hiện từng bước các thao tác trong lệnh. Để làm được điều này bên trong vi xử lí có các thanh ghi (registers) để chứa địa chỉ của các lệnh sắp thực hiện (lệnh kế tiếp) như thanh ghi con trỏ lệnh IP (Instruction Pointer) hay còn gọi là bộ đếm chương trình PC (Program Counter) và các thanh ghi khác dùng để lưu trữ dữ liệu tạm thời hoặc các trạng thái của hệ thống. Các thanh ghi này cùng với bộ tính số học và logic ALU (Arithmetical and Logic Unit) cho phép thực hiện các thao tác với dữ liệu. Trong vi xử lí thì đơn vị điều khiển CU (Control Unit) là phần phức tạp nhất vì nó có chức năng giải mã lệnh và tạo các xung điều khiển toàn hệ thống. CPU thực hiện các chức năng chính sau:

- Điều khiển ghi/đọc thông tin lên bộ nhớ-Hiểu và thực hiện 1 tập hữu hạn các chỉ thị được thể hiện dưới dạng mã số-Nhập tuần tự các chỉ thị từ bộ nhớ và thực thi các chỉ thị này (chức năng thực hiện chương

trình đang có trong bộ nhớ).-Điều khiển quá trình nhập thông tin từ thiết bị đầu vào và điều khiển quá trình xuất thông

tin qua thiết bị đầu ra.- Bộ nhớ chính (RAM+ROM): Được tạo bởi các vi mạch nhớ bán dẫn có tốc độ truy cập nhanh

nhưng dung lượng hạn chế, nằm trên bản mạch chính được chia thành các ô nhớ và mỗi ô nhớ có một địa chỉ duy nhất xác định. Địa chỉ của các ô nhớ (xác định vị trí của ô đó trong bộ nhớ) bắt đầu từ 0 và tăng dần, mỗi ô nhớ dài 1 byte.

ROM : ROM là bộ nhớ chỉ đọc. Dữ liệu trong ROM được duy trì ngay cả khi không có

3

Page 4: Giáo trình kiến trúc máy tính ICTU

nguồn điện nuôi. ROM chứa các chương trình kiểm tra hệ thống, chương trình xác lập cấu hình hệ thống, chương trình đọc cung đĩa khởi động, các chương trình điều khiển các thiết bị vào-ra cơ bản của máy tính (BIOS-Basic Input/Output/Output System)...

RAM: RAM là bộ nhớ thao tác. Bộ nhớ RAM có chức năng chứa các phần mềm của hệ thống (hệ điều hành), phần mềm và dữ liệu của một hoặc nhiều chương trình đang hoạt động (chương trình ứng dụng). Nội dung RAM sẽ bị xóa khi mất điệnNgoài ra còn có: + Bộ nhớ khối (bộ nhớ ngoài): Lưu giữ tài nguyên phần mềm của máy tính bao gồm: HĐH, các chương trình và các dữ liệu. Bộ nhớ ngoài được kết nối với hệ thống dưới dạng các thiết bị vào/ra. Nó có dung lượng lớn nhưng tốc độ truy cập chậm. Các loại bộ nhớ ngoài như: Đĩa cứng, đĩa mềm,…+ Bộ nhớ cache: Là thành phần nhớ tốc độ nhanh được đặt đệm giữa CPU và bộ nhớ chính nhằm tăng tốc độ truy cập bộ nhớ của CPU. Dung lượng nhỏ hơn bộ nhớ chính. Nó được sử dụng để lưu trữ các lệnh và dữ liệu thường được sử dụng nhiều trong quá trình thực hiện chương trình. (bộ nhớ này có thể có hoặc ko có).

-Thiết bị vào: Thực hiện chức năng nhập thông tin cho máy tínhVí dụ: Bàn phím, chuột,…

-Thiết bị ra: Hiển thị các thông tin đưa ra từ máy tính ở dạng con người có thể hiểu đượcVD: Màn hình, máy in, thiết bị âm thanh,…

- Phối ghép vào/ra (thiết bị giao diện): là các mạch điện tử thực hiện chức năng ghép nối, cho phép CPU thông tin được với các thiết bị ngoại vi như bàn phím, màn hình, ổ đĩa từ, chuột,…Các mạch điện tử này gọi là các cổng vào/ra (I/O port). Tùy theo yêu cầu mà chúng có chức năng hoặc là cổng vào nếu cho phép CPU nhận thông tin từ ngoài hoặc là cổng ra nếu cho phép CPU xuất thông tin ra ngoài hoặc cả hai.Sự có mặt của thiết bị giao diện là do có sự khác biệt rất lớn về dạng thức truyền tải và tốc độ xử lý thông tin giữa đơn vị xử lý trung tâm và các thiết bị ngoại vi. Bên trong máy tính con số được sử dụng làm phương tiện truyền tải thông tin, thế giới bên ngoài máy tính thông tin được truyền tải dưới dạng ký tự, ánh sáng, âm thanh,..Đơn vị xử lý trung tâm xử lý thông tin với tốc độ rất cao, các thiết bị bên ngoài máy tính xử lý thông tin với tốc độ chậm hơn nhiều.

- Hệ thống bus:Các khối cơ bản của máy tính được kết nối với nhau qua một tập đường dây truyền tín hiệu

gọi là bus hệ thống: Là đường truyền thông tin trong máy tính.Về mặt vật lý Bus là tập hợp của các đường dây truyền tín hiệu điện, mỗi một đường dây truyền được một bit thông tin tại một thời điểm. Đơn vị xử lý trung tâm CPU thực hiện kết nối và trao đổi thông tin với các đơn vị chức năng khác thông qua hệ thống BUS. Bus hệ thống gồm 3 bus thành phần là:

+ Bus dữ liệu (2 chiều): để truyền tải dữ liệu.+ Bus địa chỉ (1 chiều: chiều ra từ CPU) để CPU định vị, chọn ô nhớ hoặc chọn thiết bị

ngoại vi cần liên lạc, là loại bus 1 chiều.

4

Page 5: Giáo trình kiến trúc máy tính ICTU

+ Bus điều khiển(2 chiều): Do CPU hay thiết bị khác phát ra để điều khiển quá trình trao đổi dữ liệu như tín hiệu để phân biệt đơn vị được CPU truy nhập là thuộc bộ nhớ hay thiết bị vào/ra, thao tác truy nhập là đọc hay viết,…

Để người sử dụng có thể làm việc được trên máy tính (như viết và cho chạy các chương trình ứng dụng của riêng họ) thì chỉ với các bộ phận phần cứng trên là không đủ, một phần mềm gọi là HĐH phải được cài đặt sẵn trong máy tính. Đó là 1 tập hợp các chương trình để sử dụng các chức năng cơ bản của các bộ phận phần cứng hay phần mềm trên hệ thống máy tính. Khác với chương trình ứng dụng, HĐH là một chương trình hệ thống đặc biệt chạy trong suốt thời gian hoạt động của máy tính. Thực ra nó là một tập hợp các chương trình lo việc điều khiển hoạt động của máy tính cũng như cho phép các chương trình phần mềm khác chạy được. Nó điều khiển máy tính quyết định cho các chương trình nào chạy trong khoảng thời gian nào, quyết định nguồn tài nguyên nào (bộ nhớ, thiết bị vào/ra,…) đang được sử dụng,..

Trong các lĩnh vực khoa học và đời sống, máy tính số có thể dùng trong lĩnh vực xử lý dữ liệu, sử dụng trong đo lường và điều khiển tự động hay được dùng như một bộ xử lí số…1.2. Biểu diễn thông tin trong máy tính số

1. Các hệ đếm liên quan tới máy tính- Trong cuộc sống hàng ngày ta thường dùng hệ đếm cơ số mười hay hệ thập phân là tổ hợp các chữ

số từ 0 tới 9 để biểu diễn giá trị các số. Còn trong máy tính số thì hệ đếm nhị phân được sử dụng để biểu diễn giá trị các số. Bởi vì máy tính số được xây dựng trên cơ sở các mạch điện, mà các mạch điện ở từng thời điểm chỉ ở một trong hai trạng thái đóng hoặc mở; có hoặc không có dòng điện trong mạch; điện áp cao hoặc điện áp thấp. Trong hệ nhị phân thì bit (là số 0 hoặc 1) là đơn vị nhỏ nhất biểu diễn dữ liệu (đơn vị nhỏ nhất mang thông tin) trong máy tính.

- Để biểu giá trị của một số N bất kỳ ta dùng ký pháp vị trí như sau:anan-1….a1a0a-1a-2…a-(m-1)a-m=an*bn+an-1*bn-1+…+a1*b1+a0*b0+a-1*b-1+a-2*b-2 +…+a-(m-1)*b-(m-

1)+a-m*b-m

Trong đó: b : là cơ số ; bn-1,…,b2,b1,b0,b-1,b-2,…,b-(m-1),b-m là các trọng số.

an , an-1,an-2,…,a1,a0,a-1,a-2,…a-(m-1),a-m : là các số nằm ở vị trí tương ứng với trọng số.Khi cần phân biệt rõ hệ đếm thường viết thêm chỉ số dưới ký hiệu cơ số vào các số. Ví dụ số 65

trong hệ thập phân được viết là 6510, trong hệ nhị phân được viết là 1001022.Ví dụ:

- Biểu diễn số 541.2510 : 541.2510 = 5*10-2 + 2*10-1 + 1*100 + 4*101 + 5*102

Trong đó : 10 - cơ số ; 10-2, 10-1, 100, 101, 102 – các trọng số5, 2, 1, 4, 5 – là các chữ số được đặt ở vị trí tương ứng với trọng số357.123 = 3*102 + 5*101 + 100 + 1*10-1+2*10-2+3*10-3

- Một giá trị 126.5 hệ thập phân sẽ được biểu diễn ở hệ nhị phân dưới dạng : 1111110.12=1*26+1*25+1*24+1*23+1*22+1*21+0*20+1*2-1

5

Page 6: Giáo trình kiến trúc máy tính ICTU

Trong đó : 2 - cơ số ; 2-1, 20, 21, 22, 23 ,24, 25, 26– các trọng số

1, 0, 1, 1, 1,1,1,1 – là các chữ số được đặt ở vị trí tương ứng với trọng số.- Hiện nay có 4 hệ đếm hay được dùng trong những bài toán liên quan đến máy tính đó là :

Hệ mười (decimal) b=10 a={0,1,2,3,4,5,6,7,8,9}Hệ nhị phân (binary) b=2 a={0,1}Hệ tám (octal) b=8 a={0,1,2,3,4,5,6,7}Hệ mười sáu (hexaldecimal) b=16 a={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}Giữa các hệ đếm thường xuyên phải có sự chuyển đổi qua lại :+ Đổi số thập phân sang các số có hệ cơ số r được thực hiện bằng cách tách số đó thành 2

phần : Phần nguyên và phần phân số để biến đổi riêng rẽ. Sự biến đổi phần nguyên được thực hiện bằng cách chia liên tiếp cho r và tích lũy các số dư lại. Biến đổi phần phân số được thực hiện bằng cách nhân liên tiếp với r và tích lũy các số nguyên nhận được. Ví dụ dưới đây là quá trình biến đổi số thập phân sang số nhị phân :

Đổi 23.37510 sang nhị phân. Chúng ta sẽ chuyển đổi phần nguyên dùng phương thức số dư :

KQ : 23.37510 = 10111.0112

Tuy nhiên, trong việc biến đổi phần lẻ của một số thập phân sang số nhị phân theo phương thức nhân, có một số trường hợp việc biến đổi số lặp lại vô hạn như:

6

Page 7: Giáo trình kiến trúc máy tính ICTU

+ Đổi số nhị phân sang số thập phân: Bằng cách cộng các số mũ 2 ứng với các số bằng 1 trong số nhị phân.

Ví dụ: 1 0 1 0 1 1 1 Số nhị phân

26 25 24 23 22 21 20 Các trọng số

64 0 16 0 4 2 1 Kết quả =87

+ Chuyển đổi giữa các số nhị phân và số hệ thập lục: Một nhóm số nhị phân 4 bit vừa đủ biểu diễn một chữ số trong hệ mười sáu nên ta sẽ nhóm số nhị phân cần chuyển đổi thành các nhóm 4bit và đổi mỗi nhóm đó ra 1 chữ số mười sáu:

Ví dụ: 11000001112 nhóm: 11 0000 0111 kết quả là: 30716

+ Chuyển đổi một số hệ thập lục phân sang số nhị phân chỉ việc đổi mỗi chữ số hệ thập lục sang một nhóm 4bit

Ví dụ : AB4C = 1010 1011 0100 11002

+ Giữa hệ thập phân và nhị phân tồn tại một hệ lai BCD (binary coded decimal): Hệ này mã hóa mỗi con số trong hệ thập phân bằng một só nhị phân. Thường dùng một số nhị phân 4 bit để mã hóa cho các chữ số từ 0 đến 9. Như vậy không dùng hết các tổ hợp có thể có của 4bit (24=16).

Ví dụ: Số 52010 nếu biểu diễn theo số BCD sẽ là:

Số thập phân 5 2 0

Các số BCD 0101BCD 0010BCD 0000BCD

2. Các phép toán đối với các số nhị phân- Phép cộng : Ta có nguyên tắc sau

0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 0 nhớ 1 (để cộng vào hàng trước nó, tương tự như phép cộng số thập

phân). Giá trị 1 + 1 = 2, nhưng vì trong hệ nhị phân chỉ có hai số 0 và 1, mặt khác

7

Page 8: Giáo trình kiến trúc máy tính ICTU

biểu diễn của 2 trong hệ nhị phân là 2 = 1*21 + 0*20 = 10 nên kết quả chính là 0 và nhớ 1.

Ví dụ: Cộng hai số 1000111 (số 71 trong hệ thập phân) và số 11110 (số 30 trong hệ thập phân).

Cột 7 6 5 4 3 2 1

71 = 1 0 0 0 1 1 1

30 = 1 1 1 1 0

Bit nhớ 0 1 1 1 1 0

101 1 1 0 0 1 0 1

Và kết quả chúng ta được: 1000111 + 11110 = 1100101 (71 + 30 = 101, ta có thể kiếm tra lại bằng cách đổi số 101 sang nhị phân xem có đúng kết quả vừa làm ra không).

- Phép trừ : Nguyên tắc0 – 0 = 00 – 1 = 1 mượn 1 (vì số bị trừ nhỏ hơn số trừ nên phải mượn 1từ số

ở vị trí cao hơn bên trái)1 – 0 = 11 – 1 = 0

Ví dụ: Thực hiện phép trừ 51 – 28 =  23Số 5110 = 1100112, số 2810 = 111002

Cột 6 5 4 3 2 1

51 = 1 1 0 0 1 1

28 = 0 1 1 1 0 0

Bit mượn 1 1 1 0 0

23 = 0 1 0 1 1 1

Vậy 110011 – 11100 = 010111 (tương ứng với 51 – 28 = 23)Ví dụ : 6 – 3 = 3

1 1 0 - 0 1 1

1 1 phần nợ0 1 1

- Nhân hai số nhị phân: Phép tính nhân trong hệ nhị phân cũng tương tự như phương pháp làm trong hệ thập phân. Hai số A và B được nhân với nhau bởi những tích số của các kí số 0 và 1 của A và B: với mỗi con số ở B, tích của nó với một con số trong A được tính và viết xuống một hàng mới, mỗi hàng mới phải chuyển dịch vị trí sang bên trái 1 bit. Tổng của các tích cục bộ này cho ta kết quả tích số cuối cùng.

Nguyên tắc: 0 * 0 = 0 ; 1 * 0 = 0; 0 * 1 = 0; 1 * 1 = 1Ví dụ: 9 x 6 = 54  (1001 x 110 = 110110)

8

Page 9: Giáo trình kiến trúc máy tính ICTU

Để dễ hiểu, xem 2 hình dười đây, hình thứ nhất biểu diễn cách nhân 2 số thập phân và hình thứ 2 là cách nhân 2 số nhị phân.

- Chia 2 số nhị phân: Phép chia số nhị phân tương đối phức tạp hơn phép cộng, trừ và nhân. Cách

chia số nhị phân cũng giống như chia 2 số thập phân, do đó các bạn cần nắm vững cách chia trên số thập phân, đồng thời cần nắm vững cách trừ 2 số nhị phân. Đầu tiên hãy xem hình 1 để nhớ lại cách chia 2 số thập phân, sau đó xem hình 2 các bạn sẽ hiểu cách chia số nhị phân.

Nguyên tắc: 0 : 1 = 0; 1 : 1 = 1

3. Biểu diễn số nguyên không dấu và có dấu trong máy tính3.1. Biểu diễn số nguyên không dấu

Tất cả các số cũng như các mã ... trong máy vi tính đều được biểu diễn bằng các chữ số nhị phân. Để biểu diễn các số nguyên không dấu, người ta dùng n bit. Tương ứng với độ dài của số bit được sử dụng, ta có các khoảng giá trị xác định như sau:

Số bit Khoảng giá trị n bit: 0 2n - 18 bit (Byte) 0255

16 bit(Word) 065535

9

Page 10: Giáo trình kiến trúc máy tính ICTU

3.2. Biểu diễn số nguyên có dấu trong máy tính Các số nguyên có dấu dùng bit tận cùng bên trái làm bit dấu : bit bằng 0 biểu diễn cho dấu (+) và bằng 1 cho dấu (-). Một cách tổng quát ta cóSố bit Khoảng giá trị n bit: -(2n) +(2n-1)8 bit -128 +127

Một số nguyên dương trong khoảng này sẽ được biểu diễn như mã nhị phân thông thường có số 0 ở bit cao nhất.

Ví dụ : +2510 = 000110012 +6510=0100 00012

Một số nguyên âm trong khoảng này sẽ được biểu diễn theo mã số bù 2 của số nguyên dương tương ứng.

Số bù 2 của một số nhị phân được tạo ra bằng cách lấy 1 trừ mỗi chữ số và cộng 1 vào chữ số có ý nghĩa thấp nhất của số vừa được tạo ra. Phương pháp tạo số bù 2 của một số trên thực tế đuợc thực hiện bằng cách đổi số 0 thành số 1, đổi số 1 thành số 0 và cộng 1 vào chữ số có ý nghĩa thấp nhất của số vừa được tạo ra.

Ví dụ : Số bù 2 của -2510 = 111001112 -6510=1011 1111

Với hệ thống bù 2 các phép tính cộng và trừ hai số nhị phân được thực hiện qua chỉ một phép tính cộng. Trong hệ thống bù 2 khi thực hiện cộng hai số có thể có bốn tình huống xảy ra:

+ Cả 2 số là dương : Khi thực hiện phép cộng thì cộng từng số từ phải qua trái, kể cả bit dấu. Ví dụ cộng hai số dương 4 bit :

+ Một số là dương, một số là âm và số âm có trị tuyệt đối nhỏ hơn. Bù 2 của số âm được tạo và thêm bit dấu vào vị trí cao nhất.

Khi thực hiện phép cộng, một bit nhớ sẽ được tạo ra từ bit dấu. Cần bỏ bit nhớ đi. Kết quả là một số dương.

Ví dụ cộng hai số khác dấu 4 bit :

+ Một số là dương, một số là âm và số âm có trị tuyệt đối lớn hơn.

10

Page 11: Giáo trình kiến trúc máy tính ICTU

Khi thực hiện phép cộng, không có nhớ từ bit dấu. Kết quả là một số âm ở dạng bù 2. Cần bỏ bit dấu ở kết quả và phải tạo số bù 2 với số đó để nhận được kết quả thật.

Ví dụ cộng hai số khác dấu 4 bit :

+ Cả hai số là âm : Khi thực hiện phép cộng, có nhớ được tạo ra từ bit dấu. Cần bỏ bit nhớ và kết quả là một số âm ở dạng bù 2. Phải bỏ bit dấu và tạo số bù 2 với số đó để nhận được kết quả thật.

Ví dụ cộng hai số âm 4 bit :

4. Biểu diễn số thực trong máy tínhTrong các hệ đếm để mô tả các giá trị có phần nhỏ hơn 1 người ta dùng 1 dấu “.” (theo tiếng Anh)

hay dấu “,” (theo tiếng Việt) để phân cách 2 phần: Phần nguyên và phần phân số. Vì vậy trong mục này ta sẽ gọi số có dấu phảy là số có dấu chấm.

Có 2 cách biểu diễn một số thực trong hệ nhị phân : Số có dấu chấm cố định (fixed point number) và số có dấu chấm động (floating point number).

4.1. Biểu diễn số có dấu chấm cố địnhTương tự như cách biểu diễn 1 số thực thông thường của hệ thập phân gồm 2 phần : Phần

nguyên và phần sau dấu chấm. Công thức như sau :an-1an-2….b1b2…bm-1bm=an-1*En-1+an-2*En-2+…+a1*E1+a0*E0+b1*E-1+b2*E-2 +…+bm-1*E-(m-

1)+bm*E-m

VD : 111.11=2*2-2 + 2*2-1 + 2*20 + 2*21 + 2*22

4.2. Biểu diễn số có dấu chấm động Khi cần biểu diễn và xử lí những phân số và những số rất dài, thí dụ các số bao gồm rất

nhiều con số 0 mà chỉ có một ít con số có ý nghĩa như hai số sau :Khối lượng mặt trời : 199000000000000000000000000000000000gKhối lượng điện tử : 0.000000000000000000000000000000910956g

11

Page 12: Giáo trình kiến trúc máy tính ICTU

Khi này máy tính sẽ phải dùng đến một số lớn byte nhớ để lưu trữ các con số 0 như vậy. Như đã biết rằng 1 byte biểu diễn được 256 số (từ 0 tới 255) thì để biểu diễn một số trong dải rất rộng từ lớn đến nhỏ như vậy cần đến cỡ 14 byte cho phần nguyên và 12 byte cho phần thập phân. Rõ ràng trong trường hợp này dùng loại số có dấu chấm tĩnh sẽ rất bất tiện. Máy tính số thường biểu diễn và lưu trữ những số trên trong dạng dấu chấm động như sau : 1.99*1033g và 0.910956*10-27g hay theo cách viết khoa học là 1.99E33g và 0.910956E-27g. Tổng quát lên thì một số dấu chấm động sẽ có dạng là:

± Định trị *Cơ số± số mũ

Ví dụ : 490000=0.49*106

0.00023=0.23*10-3

Giá trị dấu chấm động được biểu diễn ở dạng mã nhị phân tuân theo chuẩn IEEE754. Có 2 dạng số dấu chấm động : Dạng đơn giản và dạng độ chính xác gấp đôi.

+ Dạng đơn giản : Số dấu chấm động được lưu trữ dưới dạng dữ liệu 32bit :

Dữ liệu này biểu diễn giá trị : V=(-1)S*2E-127*1.FV : giá trị của số dấu chấm độngS : bit dấuE : Số nguyên nhị phânF : Phần sau dấu chấm nhị phân (dạng mã nhị phân). Phần định trị có dạng 1.F

+ Dạng độ chính xác gấp đôi : Giá trị dấu chấm động độ chính xác gấp đôi được lưu trữ dưới dạng dữ liệu 64bit :

Dữ liệu này biểu diễn giá trị :V=(-1)S*2E-1023*1.F

Phạm vi biểu diễn của số dấu chấm động 64bit được hiểu theo cách tương tự như với số chấm động 32bit.

Ví dụ các bước biến đổi số thập phân -12.62510 sang số chấm động chuẩn IEEE 754 chính xác đơn (32 bit):

Bước 1: Đổi số -12.62510 sang nhị phân: -12.62510 = -1100.1012. Bước 2: Chuẩn hoá: -1100.1012 = -1.1001012 * 23 (Số 1.1001012 dạng 1.f) Bước 3: Điền các bit vào các trường theo chuẩn:

Số âm: bit dấu S có giá trị 1. Phần mũ E với số thừa K=127, ta có: E-127=3 ⇒ E = 3 + 127 = 130 (1000 00102).

12

Page 13: Giáo trình kiến trúc máy tính ICTU

1.2.4. Biểu diễn các ký tự Tuỳ theo các hệ thống khác nhau, có thể sử dụng các bảng mã khác nhau: ASCII,

EBCDIC, UNICODE,.... + Bảng mã ASCII (American Standard Codes for Information Interchange) : Bảng mã này gán cho

mỗi ký tự đọc được và không đọc được (ký tự điều khiển) một số nhị phân nhấ t định. Bảng mã này dùng một byte để biểu diễn một ký tự. Với chuẩn mã ASCII này khi biểu diễn thì sẽ gặp phải khó khăn trong việc biểu diễn các bảng chữ cái không phải là tiếng anh như tiếng Việt, hay cho các hệ chữ tượng hình như (hán, hàn, nhật).Ký tự Mã thập phân Mã thập lục phânNull 0 0031 ký tự điều khiển 1 – 31 01-1FCác dấu 32 – 47 20 – 2FSố 0-9 48-57 30-39Các dấu khác 58-64 3A-40A-Z 65-90 41-5ACác dấu khác 91-96 5B-60a-z 97-122 61-7ACác dấu khác 123-127 7B-7F

+ Chuẩn Unicode : Dùng 2 byte để mã hóa một ký tự. Đặc điểm chính của Unicode là nó không chứa ký tự điều khiển và dùng cả 16bit để mã hóa ký tự.

Tuỳ theo các hệ thống khác nhau, có thể sử dụng các bảng mã khác nhau: ASCII, EBCDIC, UNICODE,....Các hệ thống trước đây thường dùng bảng mã ASCII (American Standard Codes for Information Interchange) để biểu diễn các chữ, số và một số dấu thường dùng mà ta gọi chung là ký tự.1.2.5. Biểu diễn các dạng thông tin khác

- Biểu diễn hình ảnh : Ảnh thực chất là một tập hợp các điểm màu liên tiếp liền nhau hoặc 1 tập hợp các đường hình học

nhằm miêu tả 1 phong cảnh sự vật hay một chủ đề nào đó. Trên máy tính ảnh được lưu trên các file nhị phân theo các định dạng do nhà sản xuất quy định. Hiện tại có hơn 50 định dạng ảnh khác nhau được chia làm 2 loại cơ bản nhất là ảnh bitmap và ảnh vecto. Như ảnh bitmap mỗi bit tương ứng một điểm ảnh (giá trị 1 – màu đen, giá trị 0 – màu trắng)

Ta có thể gặp rất nhiều các định dạng ảnh khác nhau như : BMP,ICO,GIF, JPG,…- Biểu diễn âm thanh : ta có thể mã hóa âm thanh theo hệ đếm nhị phân bằng cách ngắt âm thanh ra

thành nhiều giá trị sau một khoảng thời gian nhất định. Sau đó gán cho mỗi giá trị một mã nhị phân và lưu trữ chúng tuần tự trong một tệp. Ví thính giác con người chỉ phân biệt được tần số

13

Page 14: Giáo trình kiến trúc máy tính ICTU

âm thanh tối đa là fmax=20Khz, nên theo quy luật lấy mẫu tần số ngắt âm thanh tối thiểu phải lớn gấp đôi tần số tối đa fmax.

Mã hóa âm thanh bằng 8bit sẽ cho 256 giá trị khác nhau. Những khổ âm thanh thường gặp là WAVE, MPEG,…1.3 Kiến trúc cơ bản máy vi tính PCMột máy tính PC được xây dựng trên cơ sở các khối chức năng cơ bản sau:

1. Đơn vị xử lý trung tâm CPU 80286 CPU 80286 là loại 16 bít (độ rộng của dữ liệu hoặc mã lệnh là 16 bit). Chức năng chính của

CPU:+ Quản lý bộ nhớ. CPU 80286 có Bus địa chỉ 24bit và quản lý được 24*220 = 16M ô nhớ vật lý. + Hiểu và xử lý một tập hữu hạn các lệnh. - Chuyển dữ liệu giữa CPU và bộ nhớ (MOV, PúH, POP v.v.)- Số học và logic (ADD, SUB, MUL, DIV v.v...) - Xử lý bit (SHL.SHR.ROL.Rỏ v.v...) - Rẽ nhánh (JMP. CALL, RET. INT v.v...) - Vào/ra dữ liệu các cổng (IN, OUT) - Các lệnh khác (CLI. STI v.v...) + Thực hiện chương trình theo cơ chế nhập tuần tự từng lệnh từ bộ nhớ và xử lý. + Điều khiển hoạt động trao đổi dữ liệu giữa CPU và bộ nhớ, giữa CPU với thiết bị vào/ra

và với các thiết bị khác. CPU 80286 có hai chế độ làm việc.

14

Page 15: Giáo trình kiến trúc máy tính ICTU

+ Chế độ thực: là chế độ hoạt động giống như CPU.8086. Khi bật nguồn điện thì CPU được đặt ở chế độ thực. Trong chế độ này CPU quản lý bộ nhớ vật lý lớn đến 24*216 = 1Mb, và có thể mở rộng đến 16Mb.

+ Chế độ bảo vệ Chế độ bảo vệ cung cấp cơ chế bảo vệ bộ nhớ và công cụ hỗ trợ quản lý bộ nhớ ảo. Trong

chế độ này CPU quản lý được 214 * 216 = 230 = 1G ô nhớ. Các CPU từ 80286 trở về sau đều có khả năng làm việc ở chế độ này.

2. Bộ đồng xử lý Bộ đồng xử lý trợ giúp CPU xử lý các phép tính số học có giá trị là dấu chấm động, các

phép tính logarit, lượng giác với tốc độ nhanh và với độ chính xác cao. 3. Bộ nhớ chính Bộ nhớ chính được hiểu là bộ nhớ có tốc độ truy nhập cao (bộ nhớ bán

dẫn). Bộ nhớ chính được tổ chức kiểu tuyến tính. Địa chỉ của các ô nhớ (xác định vị trí của ô đó trong bộ nhớ) bắt đầu từ 0 và tăng dần. Bộ nhớ chính chứa mã lệnh chương trình và dữ liệu của chương trình đang chạy hiện thời. Khi CPU phát địa chỉ lên Bus địa chỉ là để truy nhập bộ nhớ chính. Bộ nhớ chính có hai phần ROM và RAM.

ROM : ROM là bộ nhớ chỉ đọc. Dữ liệu trong ROM được duy trì ngay cả khi không có nguồn điện nuôi. ROM chứa các phần mềm cơ bản sau:

- Các chương trình kiểm tra hệ thống (quá trình POST): Kiểm tra CPU, kiểm tra RAM, kiểm tra các thiết bị điều khiển và giao diện, các thiết bị ngoại vi như bàn phím, ổ đĩa, v.v...

- Chương trình xác lập cấu hình hệ thống. - Chương trình quét ROM mở rộng (Tại các địa chỉ C000 : 0000, D000:

000. Nếu tìm thấy bất kỳ ROM nào có chương trình thì nó sẽ được thực thi). - Chương trình đọc cung khởi động (mặt 0, rãnh 0, cung vật lý 1) của ổ đĩa khởi động mặc

định. BIOS thường cho phép chọn ổ đĩa khởi động mặc định. Nếu khởi động từ đĩa mềm thì cung khởi động (Boot Record) được đọc. Nếu khởi động từ ổ cứng thì cung khởi động chủ (Master Boot Record-MBR) của ổ đĩa cứng thứ nhất được đọc. Nội dung cung này được nạp vào RAM tại địa chỉ 0000 : 7C00. CPU chạy chương trình khởi động hệ điều hành tại địa chỉ này.

ROM còn chứa các chương trình điều khiển các thiết bị vào-ra cơ bản của máy tính (BIOS-Basic Input/Output/Output System). BIOS là cầu nối giữa phần cứng và phần mềm trong hệ thống máy tính. Các chương trình điều khiển này luôn gắn với cấu hình phần cứng của máy tính. Thông qua các chương trình này hệ điều hành có thể giao diện được với phần cứng của từng máy tính.

RAM: RAM là bộ nhớ thao tác. Bộ nhớ RAM có chức năng chứa các phần mềm của hệ thống (hệ điều hành), phần mềm và dữ liệu của một hoặc nhiều chương trình đang hoạt động (chương trình ứng dụng).

Phân bổ địa chỉ của các vùng chức năng tại vùng nhớ đầu tiên như sau:

15

Page 16: Giáo trình kiến trúc máy tính ICTU

Địa chỉ vật lý (hexadecimal)

Địa chỉ đoạn (hexadecimal)

Tên và chức năng vùng nhớ

000000-09FFFF 00000 Vùng nhớ quy ước 640Kb dành cho hệ điều hành và người sử dụng

0A0000-0BFFFF A000 Vùng nhớ 128Kb dành cho hiển thị (VIDEO RAM).0C0000-0DFFFF C000 Vùng nhớ 128Kb dự phòng cho ROM, mở rộng

(C000,C800,D000,D800)0E0000-0EFFFF E000 Vùng nhớ 64kb dự phòng cho RAM hệ thống.0F0000-0FFFFF F000 Vùng nhớ 64Kb ROM hệ thống100000-FFFFFF Vùng nhớ mở rộng 15Mb

4. CMOSThiết bị CMOS gồm hai bộ phận chính: đồng hồ thời gian thực và RAM-CMOS.

Các thiết bị này được nuôi bằng nguồn điện độc lập. Đồng hồ thời gian thực cung cấp thông tin thời gian thực; năm-tháng-

ngày, giờ-phút-giây. Các thông tin này được chứa ở 10 byte đầu tiên trong RAM-CMOS. RAM-CMOS: phần còn lại của RAM-CMOS chứa thông tin về cấu hình hệ thống (kích

thước RAM, các thông tin về ổ đĩa từ, v.v...). Việc truy nhập RAM-CMOS được thực hiện thông qua các cổng với địa chỉ 070h và 071h.

5. Bộ định thời TIMER 8254TIMER 8254 gồm có 3 bộ đếm nhị phân 16 bít. Đây là các bộ đếm khả trình. Các bộ đếm

16 bít trong TIMER 8254 nhận xung nhịp tần số 1190MHz từ mạch tạo xung chuẩn. TIMER 8254 tạo ra xung nhịp cho đồng hồ hệ thống, xung nhịp làm tươi DRAM và xung âm thanh cho loa:

Bộ đếm # 0: tạo xung nhịp chu kỳ 55ms (18.2 xung/ls) cho đồng hồ hệ thống. Bộ đếm #1: tạo xung nhịp kích hoạt hệ thống làm tươi DRAM. Bộ đếm #2: Cho phép người sử dụng lập trình tạo xung âm thanh cho loa. 6. Bộ điều khiển ngắt PIC8259 (Programmable Interrupt Controller)

PIC 8259 là thiết bị điều khiển khả trình. PIC 8259 hỗ trợ CPU thực hiện cơ chế ngắt cùng cho phép CPU phản ứng tức thời với yêu cầu của các thiết bị vào-ra dữ liệu và các thiết bị khác. Trong máy vi tính dòng AT có hai thiết bị PIC 8259, mỗi thiết bị ghi nhận được 8 yêu cầu ngắt.

16

Page 17: Giáo trình kiến trúc máy tính ICTU

7. Bộ điều khiển truy nhập trực tiếp bộ nhớ DMAC 8237 (Direct Memory Access Controller) DMAC 8237 là thiết bị điều khiển khả trình. DMAC 8237 điều khiển quá trình vào/ra dữ

liệu trực tiếp giữa bộ nhớ và các thiết bị ngoại vi (ví dụ: thiết bị đĩa từ), gọi tắt là quá trình DMA (Direct Memory Access). Trong máy vi tính dòng AT có hai thiết bị DMAC 8237, mỗi thiết bị phục vụ 4 kênh DMA.

8. Thiết bị giao diện bàn phím KC 8042 (Keyboard Controller) KC 8042 thực hiện chức năng giao diện giữa bàn phím và đơn vị xử lý trung tâm CPU.

KC 8042 thực hiện giao diện kiểu nối tiếp đồng bộ giữa CPU và bàn phím, phát các chỉ thị và nhận mã phím từ bàn phím.

9. Thiết bị giao diện màn hình CRTC (Cathode Ray Tube Controller) CRTC là thiết bị khả trình. CRTC thực hiện chức năng giao diện giữa CPU và màn hình

hiển thị. CRTC nhận lệnh và dữ liệu từ CPU, tạo ra tín hiệu ảnh và các tín hiệu đồng bộ điều khiển hiển thị trên màn hình. CRTC có thể làm việc ở hai chế độ văn bản và đồ hoạ màu.

10. Thiết bị giao diện nối tiếp UART 8250 (Universal Asynchronous Receiver Transmitter) UART 8250 thực hiện chức năng giao diện kiểu nối tiếp không đồng bộ giữa CPU và các

thiết bị ngoại vi theo chuẩn RS232.UART 8250 thực hiện chức năng nhận và phát dữ liệu dạng nối tiếp, tạo và nhận các tín hiệu bắt tay với thế giới bên ngoài theo chuẩn RS232. Trong máy vi tính dòng AT có hai thiết bị UART 8250.

11. Thiết bị giao diện song song PPI (Programmable Peripheral Interface) Mạch PPI thực hiện quá trình giao diện song song giữa CPU và các thiết bị ngoại vi. PPI

thực hiện chức năng nhận và phát dữ liệu dạng song song, tạo và nhạn các tín hiệu bắt tay với các thiết bị ngoại vi.

12. Thiết bị giao diện mềm FDC (Floppy Disk Controller) FDC thực hiện chức năng giao diện giữa CPU và thiết bị đĩa mềm. FDC nhận lệnh và dữ

liệu từ CPU hoặc bộ nhớ, chuyển thành dạng thích hợp đưa ra thiết bị đĩa mềm và ngược lại. 13. Thiết bị giao diện đĩa cứng HDC (Hard Disk Controller)HDC thực hiện chức năng giao diện giữa CPU và thiết bị đĩa cứng theo chuẩn IDE,

HDC nhận dữ liệu từ bộ nhớ, chuyển thành dạng thích hợp đưa ra thiết bị đĩa cứng và ngược lại theo chuẩn IDE.

Trong PC hiện đại các mạch chức năng như 8254, 8259, 8237, CMOSRAM, 8250, PPI, 8042, điều khiển IDE, cầu PCI, v.v... được tích hợp vào các mạch tích hợp cỡ lớn (chipset).

Không gian địa chỉ các thiết bị vào-ra được phân bổ chặt chẽ. Địa chỉ các cổng vào-ra (port address) được phân bổ như sau:

vùng địa chỉ (hexadecimal-thập lục phân)

Thiết bị

000-01F Bộ điều khiển DMAC-1 8237020-03F Bộ điều khiển ngắt PIC-1 8259, chủ040-043 Bộ định thời 8254

17

Page 18: Giáo trình kiến trúc máy tính ICTU

060-064 Thiết bị điều khiển giao diện bàn phím KC8042070-071 CMOS-RAM-Đồng hồ thời gian thực080-09F Thanh ghi trang DMA0A0-0BF Bộ điều khiển ngắt PIC-2 8259, thợ0C0-0DF Bộ điều khiển DMAC-2 82370F8-0FF Bộ đồng xử lý 80x87170-177 Thiết bị điều khiển giao diện IDE-11F0-1F7 Thiết bị điều khiển giao diện IDE-0200-207 Thiết bị giao diện điều khiển trò chơi278-27F Thiết bị giao diện song song 2 (cổng máy in LPT2)2F8-2FF Thiết bị giao diện nối tiếp 2 (cổng nối tiếp COM2)300-31F Card thử nghiệm378-37F Thiết bị giao diện song song 1 (cổng máy in LPT1)380-38F Dự phòng3A0-3AF Dự phòng3B0-3BF Thiết bị giao diện màn hình đơn sắc3C0-3CF Dự phòng3D0-3DF Thiết bị giao diện màn hình VGA3F0-3F7 Thiết bị giao diện đĩa mềm FDC3F8-3FF Thiết bị giao diện nối tiếp 1 (cổng nối tiếp COM1)

1.4. Đơn vị xử lý trung tâm CPU (Central Processing Unit)1.4.1. Cấu hình bên ngoài

Đơn vị xử lý trung tâm 80286 của máy vi tính PC/AT có các chân tín hiệu như hình sau:

- CLK: tín hiệu xung tạo nhịp thời gian cơ sở cho đơn vị xử lý trung tâm.- RST: tín hiệu khởi động hệ thống (đưa mạch logic bên trong CPU về trạng thái ban đầu).Nếu RST=1 trong ít nhất 16 nhịp đồng hồ thì vi xử lý sẽ bỏ chương trình đang chạy và nhảy vào trạng

18

Page 19: Giáo trình kiến trúc máy tính ICTU

thái khởi động lại ngay sau khi chuyển xuống mức 0.- A23-A0: BUS địa chỉ (24 tín hiệu địa chỉ, 3 trạng thái) xác định địa chỉ bộ nhớ và các

thiết bị vào-ra. Kích thước tối đa của bộ nhớ vật lý là 224 = 16Mb. Khi CPU làm việc với các cổng vào-ra thì các chân A23-A16 có mức 0, các dây A15-A0 được dùng để xác định địa chỉ 64Kb cổng vào-ra.

- D15-D0: BUS dữ liệu 16 bít, hai chiều, 3 trạng thái. - Vcc: Nguồn nuôi +5V cho vi xử lý- GND: Được nối đất (0V)

Các tín hệu điều khiển - INT: tín hiệu yêu cầu ngắt cứng. Yêu cầu ngắt có thể bị che khi bit cờ IF trong thanh ghi FLAGS

được đặt xuống 0.- NMI: yêu cầu ngắt không che được bằng cờ IF. Ngắt này không bị che bởi cờ ngắt. Ngắt này sẽ được thực hiện ngay sau khi kết thúc lệnh hiện tại.- HOLD: yêu cầu CPU "thả nổi" hệ thống BUS. Khi có thiết bị nào đó muốn làm chủ (quản lý hệ thống bus như DMAC 8237) nó sẽ gửi tín hiệu

HOLD cho CPU.- HLDA: trả lời "HOLD". Khi HLDA tích cực thì các đầu A o-A23, Do-D15 và một số đầu

tín hiệu điều khiển khác có trở kháng cao, CPU bị cách ly với thế giới bên ngoài. (Nếu đồng ý thì HLDA=1)

- -LOCK: cấm các µP khác làm chủ BUS. - PEREQ, -PEACK, -BUSY, -ERROR: Các tín hiệu này được dùng để ghép nối 80286 với các phần tử

mở rộng của vi xử lý như bộ đồng xử lý toán 80287.+ PEREQ: tín hiệu từ bộ đồng xử lý là một toán hạng đã được gửi. + -PEACK: Báo cho bộ đồng xử lý là 1 toán hạng đã được gửi.+ -BUSY: tín hiệu từ bộ đồng xử lý báo bận.+ -ERROR: tín hiệu từ bộ đồng xử lý báo lỗi. - -BHE: Khi kết hợp với chân A0 sẽ cho các chỉ thị sau:

-BHE A0 Ý nghĩa0 0 Một từ đã được truyền qua D15÷D00 1 1 byte trên D15÷D8 được truy xuất tới địa chỉ lẻ (vd 2F05H)1 0 1 byte trên D15÷D8 được truy xuất tới địa chỉ chẵn (vd 2F04H)1 1 Chưa xác định

- COD/-INTA: mức tích cực thấp là tín hiệu trả lời ngắt.- M/-IO: Nếu =1 truy xuất bộ nhớ

Nếu =0 Truy xuất bộ phận vào/ra- READY: Nếu bộ nhớ (thiết bị ngoại vi) cần truy nhập hoàn tất việc chuyển số liệu đến (hoặc đi)

chúng cần phát ra tín hiệu READY ở mức tích cực 1 tới vi xử lý, chỉ khi ấy vi xử lý mới đọc số liệu vào hoặc tiếp tục xuất ra số liệu.

- Về điều khiển thì 80286 phát ra các tín hiệu trạng thái tới 1 chip gọi là bộ điều khiển bus (82288) tiếp đó chip này sẽ dịch (giải mã) các tín hiệu trạng thái và phát ra các tín hiệu điều khiển tới các bus cụ

19

Page 20: Giáo trình kiến trúc máy tính ICTU

thể sau:

1.4.2. Cấu hình bên trong CPU 80286 được cấu thành từ 4 đơn vị chính như sau:

- Đơn vị BUS (BU):BU bao gồm các đệm địa chỉ, điều khiển và dữ liệu. BU thực hiện giao diện BUS, tạo ra và nhận vào các tín hiệu địa chỉ, điều khiển và dữ liệu và nhập lệnh từ bộ nhớ vào hàng đợi.- Đơn vị lệnh IUIU gồm bộ giải mã lệnh và hàng đợi lệnh đã giải mã. Đơn vị lệnh IU thực hiện giải mã lệnh và đưa vào hàng đợi.- Đơn vị thực hiện EU : EU thực hiện lệnh đã được giải mã.EU bao gồm đơn vị điều khiển, các thanh ghi và đơn vị số học – logic. + Đơn vị điều khiển CU (Control Unit) : Đơn vị điều khiển CU có chức năng giải mã lệnh và từ đó tạo ra các tín hiệu điều khiển hoạt động của các đơn vị chức năng khác ở bên trong và bên ngoài đơn vị xử lý trung tâm CPU, nhằm thực thi được lệnh hiện hành. CU điều khiển thực hiện các vi thao tác thực hiện lệnh theo nhịp của xung đồng hồ Clock.+ Đơn vị số học – logic ALU (Arithmetic – Logic Unit) : ALU thực hiện các phép tính số học, logic và các phép xử lý dữ liệu khác.

20

AU (đơn vị địa chỉ)

IU (đơn vị lệnh)

A23÷A0

Page 21: Giáo trình kiến trúc máy tính ICTU

+ Các thanh ghi dùng để chứa địa của ô nhớ, chứa dữ liệu, hay trạng thái kết quả của phép tính …trong quá trình CPU thực hiện chương trình- Đơn vị địa chỉ AU : Đơn vị địa chỉ AU gồm các thanh ghi đoạn, các thanh ghi trong chế độ bảo vệ, bộ cộng địa chỉ offset, bộ tạo địa chỉ vật lý từ địa chỉ logic. AU quản lý bộ nhớ trong cả hai chế độ làm việc : chế độ thực và chế độ bảo vệ.1.4.3. Quản lý bộ nhớ trong chế độ thực và các thanh ghi đoạnTrong chế độ thực bộ nhớ được quản lý theo cơ chế phân đoạn (segmentation), tức là bộ nhớ được định vị và giám sát theo đoạn. Trong cơ chế phân đoạn mỗi một chương trình không được xem là một chuỗi liên tục của mã lệnh và dữ liệu mà được chia thành các modul mã lệnh, dữ liệu, ngăn xếp,…Mỗi modul được chứa trong một đoạn nhớ và có một địa chỉ xác định. Ở CPU 16bit mỗi một đoạn có kích thước 64Kb. Hệ điều hành có thể đặt các modul của chương trình ở bất kỳ chỗ nào trong bộ nhớ vật lý, đoạn nhớ sẽ mang tên của loại modul nó chứa.

Có 4 loại đoạn khác nhau: + Đoạn mã lệnh (code segment): chứa mã lệnh của chương trình. + Đoạn dữ liệu (data segment): chứa dữ liệu của chương trình. + Đoạn ngăn xếp (stack segment): là đoạn chứa các thông tin và dữ liệu phục vụ chương trình con. + Đoạn mở rộng (extra segment): chứa dữ liệu mở rộng. Mỗi một đoạn có một địa chỉ gọi là địa chỉ đoạn. CPU có phần cững hỗ trợ việc quản lý và truy nhập

các đoạn, đó là các thanh ghi đoạn 16bit CS, DS, SS, ES. Trong chế độ thực thanh ghi đoạn chứa địa chỉ đoạn. Cụ thể :

+ Thanh ghi CS chứa địa chỉ đoạn mã lệnh + Thanh ghi DS chứa địa chỉ đoạn dữ liệu.+ Thanh ghi SS chứa địa chỉ đoạn ngăn xếp.+ Thanh ghi ES chứa địa chỉ đoạn mở rộng.- Địa chỉ đoạn xác định vị trí của đoạn trong bộ nhớ. Ta nhận được địa chỉ nền của đoạn vật lý (địa

chỉ của ô nhớ đầu tiên của đoạn) bằng cách dịch trái địa chỉ đoạn đi 4 bit và điền các số 0 vào 4 bit thấp nhất.

- Mỗi ô nhớ trong đoạn được định vị bằng một cặp con số : địa chỉ đoạn và địa chỉ offset (địa chỉ lệch), trong đó địa chỉ offset là con số xác định vị trí của ô nhớ so với nền đoạn. Cặp số này được gọi là địa chỉ logic của ô nhớ. Địa chỉ logic của một ô nhớ thường được biểu diễn ở dạng : địa chỉ đoạn : địa chỉ offset.

Ta có 2 cặp thanh ghi sau luôn đi với nhau : CS : IP và SS : SP+ IP : Chứa địa chỉ offset của ô nhớ trong đoạn mã lệnh chứa lệnh CPU cần nhập để thực

hiện+ SP : Chứa địa chỉ offset của ô đỉnh ngăn xếp trong đoạn ngăn xếp.

- Khi truy nhập các đoạn dữ liệu người lập trình cần xác định offset của các ô nhớ bằng các phương pháp xác định địa chỉ toán hạng (định vị toán hạng).

- Ta có thể hình dung cơ chế quản lý bộ nhớ trong chế độ thực như hình vẽ sau :

21

Page 22: Giáo trình kiến trúc máy tính ICTU

Cách tính địa chỉ vật líB1: Dịch trái địa chỉ đoạn đi 4 bit và điền các bit 0 vào 4 bit thấpB2: Cộng địa chỉ offset với địa chỉ đoạn sau khi dịch tráiCụ thể như sau:

Công thức tính: Địa chỉ vật lý = Địa chỉ đoạn *10 + Địa chỉ offset (tính trong hệ hexa)Vd: địa chỉ logic 1234h:0005h sẽ ứng vớiđịa chỉ vật lí 1234h * 10h + 0005h = 12340h + 0005h = 12345hViệc đổi từ địa chỉ vật lí sang địa chỉ logic cũng không có gì phức tạp. Tuy nhiên, do các segment

gối đầu nhau nên mỗi ô nhớ có thể thuộc một vài segment khác nhau. Vì vậy, một địa chỉ vật lí có thể ứng với nhiều địa chỉ logic khác nhau.

Vd: địa chỉ vật lí 12345h có thể ứng với các địa chỉ logic sau:1234h:0005h1230h:0045h1200h:0345h1000h:2345h1232h:0025h…

Ta có thể thấy rõ hơn về cơ chế quản lý bộ nhớ trong chế độ thực qua hình vẽ dưới:

22

Page 23: Giáo trình kiến trúc máy tính ICTU

- Nhận xét:+ Các đoạn không được xếp tuần tự nhau mà được xếp chồng gối lên nhau+ Khoảng cách tối thiểu của mỗi đoạn là cách nhau 16 ô nhớ hay cách nhau 16bytes.

1.4.4. Các thanh ghiCác thanh ghi là các đơn vị lưu trữ dữ liệu nằm trong CPU có tốc độ truy cập nhanh. Chúng được dùng để chứa các toán hạng của lệnh, các kết quả tạm thời của các quá trình tính toán.Các thanh ghi trong 80286 được chia ra thành các nhóm sau :Các thanh ghi đa năng AX, BX, CX, DX :

AX, BX, CX, DX là các thanh ghi đa năng 16 bit, được dùng để chứa các toán hạng của lệnh hoặc các kết quả của phép tính.

Có thể truy nhập từng thanh ghi này như là các thanh ghi 16 bit AX, BX, CX, DX hoặc như các thanh ghi 8 bit AH, AL, BH, BL, CH, CL, DH, DL...

23

Page 24: Giáo trình kiến trúc máy tính ICTU

Các thanh ghi AX, BX, CX, DX còn có các chức năng mặc định riêng trong một số ngữ cảnh cụ thể sau :

- AX (Accumulator): Khi gọi các hàm chức năng của hệ điều hành qua lệnh INT, thanh ghi AX hoặc AH được dùng để chứa con số xác định một chức năng cụ thể cần thực hiện của hàm này.VD : INT 21 thực hiện hàm 5B- Tạo tập tin mới thì AH=5B

- BX (Base): Khi thực hiện các lệnh truy nhập đoạn dữ liệu, BX được dùng để xác định địa chỉ offset hoặc địa chỉ offset nền của ô nhớ trong đoạn.

- CX (Counter): Khi thực hiện các lệnh LOOP hoặc REP, CX đóng vai trò một bộ đếm (chứa số đếm), xác định số lần thực hiện lặp.

VD : Để lặp 1 vòng n lần CX=n. Giá trị này được giảm đi 1 khi thực hiện song 1 lần lặp và cứ tiếp tục như vậy cho tới khi CX=0 thì kết thúc. - DX (Data) : Được dùng để chứa hai byte cao kết quả phép nhân hoặc phần dư của phép chia 16 bit. Khi truy nhập các cổng vào/ra có địa chỉ lớn hơn 255, DX được dùng để chứa địa chỉ (xác định địa chỉ) các công này. VD : DX=378H là địa chỉ của cổng máy inCác thanh ghi địa chỉ BP, SI, DI, SP: là các thanh ghi 16 bit

- SP (Base Pointer): BP được dùng để xác định địa chỉ offset hoặc địa chỉ offset nền của ô nhớ khi thực hiện các lệnh truy nhập các đoạn dữ liệu. BP thường được dùng để xác định địa chỉ offset hoặc địa chỉ offset nền khi truy nhập đoạn ngăn xếp. - SI (Source Index) : SI được dùng để chứa (xác định) địa chỉ offset hoặc một phần của địa chỉ offset khi truy nhập đoạn dữ liệu. SI thường được dùng để chứa địa chỉ offset của xâu ký tự trong đoạn dữ liệu (DS : SI) khi thực hiện lệnh thao tác xâu.

- DI (Destination Index) : DI được dùng để chứa (xác định) địa chỉ offset hoặc một phần của địa chỉ offset khi truy nhập đoạn dữ liệu. DI thường được dùng để chứa địa chỉ offset của xâu ký tự trong đoạn mở rộng (ES: DI khi thực hiện lệnh thao tác xâu).

- SP (Stack Pointer) : Con trỏ ngắn xếp SP chứa địa chỉ offset của ô nhớ trong đoạn ngăn xếp. SP luôn trỏ đến đỉnh ngăn xếp. Nhóm thanh ghi đoạn CS, DS, SS, ES : Là các thanh ghi 16bit, trong quản lý bộ nhớ theo cơ chế phân đoạn thìCS : Chứa địa chỉ đoạn của đoạn mã lệnhDS : Chứa địa chỉ đoạn của đoạn dữ liệuES : Chứa địa chỉ đoạn của đoạn mở rộngSS : Chứa địa chỉ đoạn của đoạn ngăn xếpCác thanh ghi điều khiển và trạng thái :

- Con trỏ lệnh IP (In struction Pointer): là thanh ghi 16 bit IP chứa địa chỉ offset của ô nhớ trong đoạn mã lệnh. Khi nhập lệnh thì IP tự động tăng dần và khi CPU nhập xong một lệnh thì IP trỏ đến ô nhớ chứa lệnh tiếp theo trong đoạn mã lệnh. Nội dung IP bị thay đổi bất thường khi CPU thực lệnh nhảy, lệnh gọi chương trình con hoặc bởi các cơ chế ngắt cứng và mềm.

24

Page 25: Giáo trình kiến trúc máy tính ICTU

- Thanh ghi cờ FLAGS : là thanh ghi 16 bit chứa các bít thông tin phản ánh trạng thái của kết quả phép tính. Một số bit cờ như IF, TF, IOPL ảnh hưởng đến hoạt động của CPU.

Không thể tác động trực tiếp vào toàn bộ thanh ghi cờ mà chỉ có thể tác động vào một số bit cờ qua các lệnh CLC, STC, CLI, STI, CLD, STD. - CF (Carry Flag) : cờ nhớ ; Nếu có hiện tượng nhớ từ bit cao nhất khi thực hiện phép tính thì CF = 1. Các lệnh CLC, STC và các lệnh dịch bit, quay vòng ảnh hưởng tới cờ này - PF (Parity Flag) : cờ kiểm tra chẵn lẻ ; Nếu lượng các bit 1 trong kết quả chẵn thì PF=1. - AF(Auxiliary Flags) : cờ nhớ phụ. Cờ AF được sử dụng trong các phép tính số học với các số BCD (Binary Cođe Decimal). Nếu có nhớ hay có mượn đối với 4 bit thấp thì AF= 1 - ZF (Zero Flag) : cờ zero. Nếu kết quả phép tính bằng không thì ZF = 1. - SF (Sign Flag): cờ dấu ; Nếu kết qủa âm (bít cao nhất của kết quả có giá trị 1) thì SF =1 - TF (Trap Flag) : cờ bẫy ; Nếu TF = 1, CPU được đặt ở chế độ chạy từng lệnh phục vụ hiệu chỉnh chương trình (debug). Trong chế độ này mỗi lệnh khi được thực hiện xong sẽ gây ra một ngắt logic (ngắt 01H) kích hoạt chương trình hiệu chỉnh. - IF (Interrupt Flag) : cờ ngắt ; Nếu IF = 1, cho phép CPU phản ứng với tín hiệu báo ngắt INT. Dùng lệnh CLI hoặc ST1 tác động được vào cờ này. - DF (Direction Flag): cờ hướng ; DF xác định hướng tăng hoặc giảm của các thanh ghi SI. DI khi thực hiện các lệnh thao tác xâu ký tự.

Nếu DF = 1 thì SI và DI giảm. Nếu DF = 0 thì SI và DI tăng Dùng lệnh STD và CLD tác động được vào bít cờ này. - OF (Overflow Flag) : cờ tràn ; OF được dùng trong các phép tính số học dấu chấm động. OF = 1 nếu kết quả quá lớn hoặc quá nhỏ, vượt quá khả năng biểu diễn của máy tính (bị tràn). - Hai cờ NT và IOPL (I/O Privilege Level) chỉ được dùng trong chế độ bảo vệ. Thanh ghi trạng thái máy (MSW) :

- PE (Protected Mode Enable) cho phép chế độ bảo vệ. Nếu PE = 1 : cho phép CPU làm việc ở chế độ bảo vệ. Khi khởi động máy tính thì PE = 0. - MP (Monitor CoProcessor): MP được dùng để đồng bộ hoạt động của CPU và bộ đồng xử lý. - EM (Emulation) : EM = 0 cho phép thực hiện các mã lệnh dấu phảy động trên bộ đồng xử lý. EM = 1 khi CPU gặp mã lệnh lệnh dấu phẩy động sẽ sinh ra ngoại tệ kích hoạt chương trình thực hiện phép tính dấu chấm động (chương trình mô phỏng bộ đồng xử lý). - TS (Task Switch) dùng ở chế độ đa nhiệm. Lệnh LMSW tác động được vào thanh ghi này.CPU 80286 còn có các thanh ghi khác như sau : (Hoạt động trong chế độ bảo vệ)- Thanh ghi nhiệm vụ TR (Task Register)

25

Page 26: Giáo trình kiến trúc máy tính ICTU

- Thanh ghi bảng mô tả cục bộ LDT (Local Descriptor Table)- Thanh ghi bảng mô tả ngắt IDT (Interrupt Descriptor Table)- Thanh ghi bảng bộ mô tả toàn cục GDT (Global Descriptor Table)- Thanh ghi từ trạng thái máy MSW (Machine Status Word).1.4.5 Quản lý bộ nhớ trong chế độ bảo vệ Chế độ bảo vệ (Protected Mode) được thiết kế cho CPU dòng Intel từ 80286 cho đến các CPU 32 bít sau này. Chế độ bảo vệ được thiết kế để hỗ trợ hệ điều hành đa nhiệm, cách ly và bảo vệ hệ điều hành khỏi những truy nhập trái phép của các chương trình ứng dụng, cách ly và bảo vệ chương trình ứng dụng này khỏi sự truy nhập trái phép của chương trình ứng dụng khác. 1.4.5.1- Các mức đặc quyền và luật về quyền truy nhập. Trong chế độ bảo vệ thì mỗi đoạn nhớ được gần một mức đặc quyền và được bảo vệ nhờ cơ chế về quyền truy nhập. Các mức đặc quyền được thiết kế để hỗ trợ hoạt động của hệ điều hành đa nhiệm nhằm: + Cách ly và bảo vệ hệ điều hành khỏi các truy nhập trái phép của chương trình ứng dụng. + Cách ly và bảo vệ chương trình ứng dụng này khỏi sự truy nhập trái phép của chương trình ứng dụng khác. Dựa vào mức đặc quyền và luật về quyền truy nhập mà CPU sẽ quyết định cho phép hay không cho phép truy nhập đoạn nhớ yêu cầu. Các mức đặc quyền (ký hiệu là PL - Privilêg Level) nằm trong một hệ thống các mức đặc quyền 4 cấp. + Đặc quyền mức PL = 0, mức đặc quyền cao nhất. Mức đặc quyền PL = 0 được gắn cho các chương trrình quản lý thiết bị và quản lý bộ nhớ. + Đặc quyền mức PL = 1. Mức đặc quyền PL = 1 được gắn cho các chương trình thiết lập mức ưu tiên giữa các nhiệm vụ, chương trình hoàn đổi dữ liệu giữa bộ nhớ chính và bộ nhớ thứ cấp (đĩa từ, chương trình quản lý các cổng vào/ra và các dịch vụ hệ thống khác. + Đặc quyền mức PL = 2. Mức đặc quyền PL = 2 được gắn cho các chương trình quản lý tệp, thư mục và các chức năng mở rộng của hệ điều hành. + Đặc quyền mức PL = 3 mức thấp nhất mức đặc quyền PL = 3 được gán cho các chương trình ứng dụng. Các luật về quyền truy nhập: luật về quyền truy nhập xác định quy tắc truy nhập đoạn nhớ. Luật 1: Dữ liệu được lưu trữ trong đoạn nhớ coa mức đặc quyền PL = P chỉ có thể bị truy nhập bởi mã lệnh có mức đặc quyền bằng hoặc cao hơn P (CPL <= DPL, CPL là mức đặc quyền của nhiệm vụ đang thực hiện, DPL là mức đặc quyền của đoạn dữ liệu bị truy nhập). Luật 2: Đoạn mã lệnh có mức đặc quyền PL = P có thể bị gọi hoặc truy nhập bởi nhiệm vụ có mức đặc quyền bắc hoặc thấp hơn P. đoạn mã lệnh có mức đặc quyền thấp có thể gọi hoặc truy nhập đoạn mã lệnh có mức đặc quyền cao hơn thông qua cổng gọi.

26

Page 27: Giáo trình kiến trúc máy tính ICTU

Theo các luật về quyền truy nhập thì chưong trình dang thực hiện có thể truy nhập tự do vào các đoạn mã lệnh và đoạn dữ liệu có cùng mức đặc quyền. Một chương trình có thể truy nhập vào một đoạn dữ liệu có mức đặc quyền thấp hơn, nhưng nếu truy nhập hoặc gọi đoạn mã lệnh có mức đặc quyền cao hơn thì phải thông qua cổng gọi. 1.4.5.2. Quản lý bộ nhớ theo phân đoạn trong chế độ bảo vệ. Các đoạn nhớ trong chế độ bảo vệ được quản lý theo ba thông số: + Địa chỉ nền + Giới hạn đoạn + Quyền truy nhập. Do thông tin về các đoạn khá lớn nên không thể chứa trong thanh ghi đoạn mà được chứa trong các bộ mô tả đoạn. Các bộ mô tả đoạn nằm trong bảng bộ mô tả. Có ba loại bảng bộ mô tả. - Bảng bộ mô tả toàn cục GDT (bảng GDT - Global Descriptor Table). Bảng GDT quản lý các đoạn (các vùng nhớ) chứa các chương trình của hệ điều hành và dữ liệu của hệ thống (các vùng nhớ chứa các thông tin có tính chất toàn cục, thuộc không gian nhớ toàn cục). Các chương trình ứng dụng có thể truy nhập vùng nhớ này. + Bảng bộ mô tả cục bộ LDT (bảng LDT - Local Desriptor Table). Mỗi bảng LDT quản lý các vùng nhớ thuộc một nhiệm vụ (các vùng nhớ chứa các thông tin có tính chất cục bộ, thuộc không gian nhớ cục bộ). Mã lệnh và dữ liệu của một nhiệm vụ đang chạy sẽ được bảo vệ trước sự truy nhập trái thép của các nhiệm vụ khác. Các bảng LDT thuộc không gian nhớ toàn cục. + Bảng bộ mô tả ngắt (bảng IDT - Interrupt Descriptor Table). Bảng IDT chứa các bộ mô tả trỏ đến 256 chương trình phục vụ ngắt. Bảng IDT đóng vai trò bảng vectơ ngắt, trong đó mỗi véc tơ ngắt là một bộ mô tả. Tất cả các Bảng bộ mô tả đều nằm trong bộ nhớ chính. a) Bộ chọn đoạn 16 bít Trong chế độ bảo vệ các thanh ghi đoạn CS, DS, ES, SS không được dùng để xác định địa chỉ nền đoạn như trong chế độ thực, mà được dùng để chọn bộ mô tả đoạn trong Bảng bộ mô tả, thực hiện chức năng Bộ chọn đoạn. Bộ chọn đoạn được dùng để xác định vị trí của Bộ mô tả đoạn trong Bảng bộ mô tả. Người lập trình phải nạp Bộ chọn đoạn vào thanh ghi đoạn tương ứng khi muốn truy nhập một đoạn nào đó. Bộ chọn đoạn có ba phần : + Phần Index: 13 bít, dùng để xác định vị trí của Bộ mô tả đoạn, tính từ nền của Bảng bộ mô tả. + TI : xác định loại Bảng bộ mô tả cần truy nhập. TI = 1 truy nhập các bảng LDT TI = 0 truy nhập bảng GDT + RPL (Requested Privilege Level) : mức đặc quyền yêu cầu. Mức đặc quyền RPL được sinh ra bởi người nạp bộ chọn đoạn.

27

Page 28: Giáo trình kiến trúc máy tính ICTU

b) Bộ mô tả đoạn Bộ mô tả đoạn chứa các thông tin quản lý một đoạn: địa chỉ nền đoạn, kích thước (giới hạn) đoạn và quyền truy nhập đoạn. Bộ mô tả đoạn được hệ điều hành, trình biên dịch hoặc trình nạp bộ nhớ tạo ra. Bộ mô tả đoạn gồm 8 byte:

Trường địa chỉ nền đoạn (24 bít : A23 - A0) xác định địa chỉ nền của đoạn. ở hệ 16 bít thì địa chỉ này cũng là địa chỉ vật lý nền của đoạn. Trường giới hạn đoạn (16 bit : L15 - L0) xác định kích thước của đoạn từ 1 byte đến 64Kb). Trường quyền truy nhập (8 bit) xác định mức đặc quyền và các thuộc tính khác của đoạn:

P - (Present) : Nếu P = 1 đoạn đang tồn tại trong bộ nhớ. Nếu P = 0 CPU sẽ tạo ra ngoại tệ "không tồn tại đoạn" khi người yêu cầu chọn đoạn này. DPL - Descriptor Privilege Level): xác định mức đặc quyền của bộ mô tả (mức đặc quyề của đoạn). DT - Descriptor Type) : xác định loại bộ mô tả. DT = 1 Bộ mô tả đoạn mã lệnh hoặc dữ liệu

28

Page 29: Giáo trình kiến trúc máy tính ICTU

DT = 0 Bộ mô tả đoạn hệ thống hoặc cổng giao dịch. Kiểu bộ mô tả: cấu trúc của trường này phụ thuộc vào loại bộ mô tả. Có các loại bộ mô tả sau: Bộ mô tả đoạn dữ liệu. Bộ mô tả đoạn mã lệnh, Bộ mô tả đoạn hệ thống. Bộ mô tả đoạn hệ (DT = 0) có hai loại: bộ mô tả LDT, bộ mô tả TSS. Bộ mô tả cổng giao dịch (DT = 0) (còn gọi là cổng giao dịch) được dùng để truy nhập vào các đoạn mã lệnh. Các bộ mô tả này sẽ được trình bày ở các phần sau. - Cấu trúc của byte quyền truy nhập trong Bộ mô tả đoạn dữ liệu:

ED (Expansion Direction): xác định hướng truy nhập đoạn (hướng tiến triển của địa chỉ). ED = 1 : hướng địa chỉ giảm, đoạn dữ liệu là loại ngăn xếp. ED = 0 : hướng địa chỉ tăng W/R (Wrie/Read): xác định quyền ghi/đọc W/R = 1 : cho ghi/đọc đoạn, dữ liệu W/R = 0 cấm ghi đoạn dữ liệu A (Accessed): A = 1 đoạn đã bị truy nhập - Cấu trúc của byte quyền truy nhập trong Bộ mô tả đoạn mã lệnh:

C (Conforming) : C = 0 chương trình con sẽ thực hiện với mức đặc quyền PL = DPL C = 1 chương trình sẽ thực hiện với mức đặc quyền PL bằng mức đặc quyền của đoạn chứa chương trình gọi chương trình con này. R (Read): R = 0 : Đoạn mã lệnh thực hiện được R = 1 : Đoạn mã lệnh thực hiện được và đọc được. A (Accessed): A = 1 đoạn mã lệnh đã bị truy nhập - Cấu trúc của byte quyền truy nhập trong Bộ mô tả đoạn hệ thống: Bộ mô tả đoạn hệ thống (Bộ mô tả TSS, Bộ mô tả LDT) quy chiếu đến (trỏ đến) các đoạn chứa thông tin hệ thống.

Kiểu đoạn: - Kiểu = 1: Bộ mô tả quy chiếu đến đoạn trạng thái nhiệm vụ TSS, nhiệm vụ này không ở trạng thái đang thực hiện. - Kiểu = 2 : Bộ mô tả quy chiếu đến đoạn chứa bảng LDT - Kiểu = 3: Bộ mô tả quy chiếu đến đoạn trạng thái nhiệm v ụ TSS của nhiệm vụ đang thực hiện.

29

Page 30: Giáo trình kiến trúc máy tính ICTU

+ Hai byte dự phòng cho hệ 32 bit có dạng:

Đối với hệ 16 bít thì hai byte này phải có giá trị là 0000H. c) Bộ mô tả cổng giao dịch (cổng giao dịch): Bộ mô tả cổng giao dịch (cổng giao dịch) được dùng để truy nhập vào các đoạn mã lệnh. Cổng giao dịch cung cấp phương tiện chuyển giao điều khiển giữa chương trình nguồn và chương trình dịch, ví dụ qua các lệnh CALL. Có thể truy nhập vào các đoạn có mức đặc quyền cao hơn thông qua một cổng giao dịch là cổng gọi. Cổng giao dịch có cấu trúc như sau:

Bộ đếm (WC - word count): xác định số từ cần sao chép từ ngăn xếp của chương trình gọi sang chương trình được gọi. Thông số WC chỉ có ở cổng giao dịch kiểu gọi (cổng gọi). Cấu trúc của byte quyền truy nhập trong Bộ mô tả cổng giao dịch (cổng giao dịch):

Kiểu cổng giao dịch: có 4 loại cổng giao dịch. Kiểu = 4 : cổng giao dịch kiểu gọi (cổng gọi) Kiểu = 5 : cổng giao dịch kiểu nhiệm vụ (cổng nhiệm vụ) Kiểu = 6 : cổng giao dịch kiểu ngắt (cổng ngắt) Kiểu = 7 : cổng giao dịch kiểu bẫy (cổng bẫy) Bộ mô tả cổng giao dịch kiểu gọi (cổng gọi) thường được dùng để chương trình nguồn có mức đặc quyền thấp hơn gọi chương trình đích có mức đặc quyền cao hơn. Bộ mô tả cổng giao dịch kiểu nhiệm vụ (cổng nhiệm vụ) được sử dụng khi có sự thay đổi nhiệm vụ trong nhiệm vụ hiện hành. Bộ mô tả cổng giao dịch kiểu nhiệm vụ quy chiếu đến Bộ mô tả đoạn TSS. Bộ mô tả cổng giao dịch kiểu ngắt và kiểu bẫy (cổng ngắt và cổng bẫy) cung cấp bộ chọn và địa chỉ offset xác định vị trí của chương trình con phục vụ ngắt bên trong đoạn mã lệnh đó. d) Lược đồ truy nhập đoạn nhớ nhờ Bộ chọn đoạn và Bộ mô tả đoạn :

30

Page 31: Giáo trình kiến trúc máy tính ICTU

Trong chế độ bảo vệ do bộ chọn đoạn cho khả năng trỏ tới được 213 Bộ mô tả đoạn và mỗi Bộ mô tả của CPU 80286 trỏ đến một đoạn có kích thước cực đại 216 byte nên CPU 80286 có thể quản lý được bộ nhớ kích thước. 2*213*216 = 230 = 1 Gbyte e) Cơ chế truy nhập bộ nhớ (ô nhớ) qua bảng GDT

Bảng GDT được hệ điều hành tạo ra khi khởi động hệ thống. CPU quản lý bảng GDT qua thanh ghi GDTR. Thanh ghi GDTR chứa hai thông tin về bảng GDT: Địa chỉ nền bảng và kích thước (giới hạn) bảng. Khi có yêu cầu truy nhập đoạn, người yêu cầu cung cấp Bộ chọn đoạn, CPU thực hiện thao tác kiểm tra quyền truy nhập đoạn trước khi cho truy nhập. Đối với việc truy nhập đoạn dữ liệu, quá trình kiểm tra được tiến hành theo quy tắc: EPL = max (CPL, RPL) Ê DPL trong đó: + CPL là mức đặc quyền của nhiệm vụ đang thực hiện. Thông thường CPL có giá trị bằng mức đặc quyền của đoạn chứa mã lệnh đang chạy. Bộ xử lý trung tâm có thể thay đổi giá trị của CPL khi điều khiển chương trình chuyển đến một đoạn mã có sức đặc quyền cao hơn.

31

Page 32: Giáo trình kiến trúc máy tính ICTU

+ RPL là mức đặc quyền yêu cầu và là mức đặc quyền của bộ chọn. Mức đặc quyền RPL được sinh ra bởi người nạp bộ chọn đoạn. + EPL là mức đặc quyền hiệu dụng. + DPL là mức đặc quyền của đoạn bị truy nhập Nếu điều kiện trên không được thoả mãn thì sẽ sinh ra một ngoại lệ và CPU không cho truy nhập đoạn. Nếu điều kiện về quyền truy nhập được thoả mãn thì CPU cho truy nhập đoạn. Việc truy nhập từng ô nhớ trong đoạn được thực hiện không qua địa chỉ nền đoạn (có được từ Bộ mô tả đoạn vừa được chọn) và địa chỉ offset của ô nhớ đó. Đối với việc truy nhập đoạn mã lệnh, quá trình kiểm tra được tiến hành theo quy tắc: EPL = max (CPL, RPL) ³ DPL trong đó việc truy nhập một đoạn mã lệnh có mức đặc quyền cao hơn (EPL > DPL) phải thực hiện thông qua cổng gọi. f) Cơ chế truy nhập bộ nhớ (ô nhớ) qua bảng LDT. Bảng LDT được hệ điều hành tạo ra khi nạp một chương trình ứng dụng vào bộ nhớ hoặc khi thực hiện một nhiệm vụ. Mỗi bảng LDT quản lý các đoạn của một chương trình ứng dụng (một nhiệm vụ). Việc quản lý các đoạn (các vùng nhớ) thuộc một chương trình ứng dụng (một nhiệm vụ) được tổ chức như sau :

Mỗi một đoạn nhớ được quản lý bởi một Bộ mô tả đoạn. Các Bộ mô tả đoạn của một nhiệm vụ được chứa trong một bảng LDT riêng biệt. Nói cách khác, mỗi bảng LDT quản lý các đoạn nhớ của một nhiệm vụ. Mỗi bảng LDT được quản lý bởi một Bộ mô tả LDT. Bộ mô tả LDT chứa địa chỉ nền bảng LDT, kích thước bảng, quyền truy nhập bảng (quyền truy nhập nhiệm vụ).

32

Page 33: Giáo trình kiến trúc máy tính ICTU

Các Bộ mô tả LDT của các nhiệm vụ được chứa trong bảng GDT, Bảng GDT được quản lý bởi thanh ghi hệ thống GDTR. Khi một nhiệm vụ được thực hiện, hệ điều hành sẽ nạp Bộ chọn LDT vào thanh ghi hệ thống LDTR. Thanh ghi LDTR trỏ đến Bộ mô tả LDT vào thanh ghi hệ thống LDTR. Thanh ghi LDTR trỏ đến Bộ mô tả LDT trong bảng GDT, từ đây CPU thông qua bảng LDT quản lý được các đoạn của nhiệm vụ đó và bắt đầu (hoặc tiếp tục) thực hiện nhiệm vụ này. Để truy nhập các đoạn trong nhiệm vụ, người yêu cầu cần nạp Bộ chọn đoạn vào thanh ghi đoạn tương ứng. CPU thực hiện thao tác kiểm tra quyền truy nhập đoạn. Nếu điều kiện về quyền truy nhập được thoả mãn thì CPU sẽ sinh ra một ngoại lệ và không cho truy nhập đoạn. Việc truy nhập từng ô nhớ trong đoạn được thực hiện thông qua địa chỉ nền đoạn (có được từ Bộ mô tả đoạn vừa được chọn) và địa chỉ offset của ô nhớ đó. g) Cơ chế chuyển điều khiển và gọi chương trình con trong chế độ bảo vệ. Việc chuyển điều khiển xẩy ra khi thực hiện các lệnh nhảy (lệnh JMP) hoặc lệnh gọi chương trình con (lệnh CALL). Trường hợp thực hiện lệnh nhảy hoặc lệnh gọi trong cùng đoạn mã lệnh của nhiệm vụ đang chạy (lệnh nhảy gắn, lệnh gọi gắn) xẩy ra như sau: Khi thực hiện lệnh nhảy gần (NEAR JUMP), con trỏ lệnh IP được nạp giá trị mới. Chương trình tiếp tục được thực hiện từ vị trí mới do IP trỏ đến. Khi thực hiện lệnh gọi gần (NEAR, CALL), bộ xử lý trung tâm thực hiện các thao tác sau: + Cất giá trị hiện thời của IP vào ngăn tiếp. + Nạp địa chỉ offset của chương trình con được gọi (đich) vào IP. + Thực hiện chương trình con (đích). Trường hợp chuyển điều khiển đến những đoạn mã lệnh khác khi thực hiện lệnh gọi xa (FAR CALL) thì có hai tình huống: - Đoạn mã lệnh đích có mức đặc quyền thấp hơn hoặc bằng mức đặc quyền của đoạn mã lệnh nguồn hiện tại. Khi đó bộ xử lý trung tâm thực hiện các thao tác sau: + Cất giá trị hiện thời của CS và IP vào ngăn xếp. + Nạp bộ chọn đoạn mã lệnh chứa chương trình con (đích) vào CS + Nạp địa chỉ offset của chương trình con (đích vào IP + Thực hiện chương trình đích Lệnh RET cho phép rời khỏi chương trình con để trở về chương trình gọi nó. Lệnh này khôi phục lại nội dung bộ chọn đoạn mã lệnh nguồn (nội dung thanh ghi CS), nọi dung con trỏ lệnh (nội dung thanh ghi IP) và tiếp tục thực hiện chương trình đã gọi chương trình con này. - Đoạn mã lệnh chương trình con (đích) có mức đặc quyền cao hơn mức đặc quyền của đoạn mã lệnh nguồn hiện tại. Khi đó việc gọi chương trình con (đích) phải thực hiện qua cổng gọi. Bộ chọn đoạn lúc này không trỏ đến bộ mô tả đoạn mã lệnh chứa chương trình con (đích), mà trỏ đến cổng gọi (bộ mô tả cổng gọi). Cổng gọi trỏ đến bộ mô tả đoạn mã lệnh của chương trình con (đích), cổng gọi cũng chứa địa chỉ offset bắt đầu chương trình con (đích), qua đó gọi được chương trình con (đích. Bộ xử lý trung tâm thực hiện quá trình này như sau: + Tạm lưu giữ nội dung CS, IP, SS, SP hiện thời (thuộc chương trình nguồn).

33

Page 34: Giáo trình kiến trúc máy tính ICTU

+ Nạp bộ chọn cổng gọi và kiểm tra quyền truy nhập. + Cất giữ giá trị tạm lưu của SS và SP nguồn vào ngăn xếp đích + Chuyển các tham số từ ngăn xếp nguồn sang ngăn xếp đích + Cất giữ giá trị tạm lưu của CS và IP nguồn vào ngăn xếp đích. + Nạp bộ chọn bộ mô tả đoạn mã lệnh đích và địa chỉ offset (lấy từ cổng gọi), qua đónạp bộ mô tả đoạn mã lệnh đích. + Thực hiện chương trình con (đích). Khi bộ xử lý trung tâm gặp lệnh RET thì việc trở về chương trình nguồn được thực hiện bắt đầu bằng việc kiểm tra quyền truy nhập, sau đó là khôi phục nội dung các thanh ghi CS, IP, SS, SP theo một trình tự ngược lại. 1.4.6. Cơ chế đa nhiệm Nhiệm vụ được định nghĩa như là một thực hiện của chương trình nào đó. Mỗi một nhiệm vụ có một đoạn trạng thái nhiệm vụ (đoạn TSS - Task State Segment) chứa toàn bộ trạng thái của nhiệm vụ đó. Mỗi đoạn TSS được quản lý (trỏ) bởi một Bộ mô tả TSS nằm trong bảng GDT. CPU x86 có phần cứng hỗ trợ thao thác chuyển nhiệm vụ. Thao tác chuyển nhiệm vụ thực hiện lưu và bảo vệ toàn bộ trạng thái hoạt động của nhiệm vụ đang thực hiện (bao gồm nội dung toàn bộ các thanh ghi của CPU, không gian địa chỉ có liên quan và Bộ chọn LDT của nhiệm vụ đang chạy) vào đoạn TSS, sau đó nạp trạng thái của nhiệm vụ tiếp theo từ đoạn TSS tương ứng vào CPU, kiểm tra quyền truy nhập và bắt đầu thực hiện nhiệm vụ mới.

Thanh ghi nhiệm vụ TR (Task Register) trỏ đến Bộ mô tả TSS quản lý nhiệm vụ hiện thời. Thao tác chuyển nhiệm vụ được tiến hành theo các bước sau : + Lưu toàn bộ trạng thái hoạt động của nhiệm vụ đang thực hiện (bao gồm nội dung toàn bộ các thanh ghi của CPU, các địa chỉ có liên quan và Bộ chọn LDT của nhiệm vụ hiện thời) vào đoạn trạng thái nhiệm vụ TSS của nhiệm vụ này. + Nạp Bộ chọn nhiệm vụ tiếp theo vào thanh ghi TR. Thanh ghi TR trỏ đến Bộ mô tả TSS quản lý đoạn TSS của nhiệm vụ tiếp theo.

34

Page 35: Giáo trình kiến trúc máy tính ICTU

+ Qua Bộ mô tả TSS truy nhập đoạn TSS của nhiệm vụ tiếp theo, nạp trạng thái nhiệm vụ tiếp theo vào các thanh ghi của CPU, trong đó có thanh ghi LDTR. Bộ mô tả TSS được nạp vào phần kín của TR. + Thực hiện kiểm tra quyền truy nhập. + Thực hiện nhiệm vụ tiếp theo.1.4.7 Các chế độ xác định địa chỉ toán hạngCPU thực hiện chương trình bằng cách thực hiện tuần tự các lệnh trong bộ nhớ chính1.4.7.1 Cấu trúc lệnh Cấu trúc của một lệnh có thể có các dạng sau:

- Mã lệnh: là phần chứa thông tin xác định các thao tác hoặc công việc cần được thực hiện. CPU x86 thực hiện một tập các nhóm lệnh: - Nhóm lệnh số học: ADD, SUB, MUL, DIV, ... - Nhóm lệnh chuyển số liệu: MOV, PUSH, POP ... - Nhóm lệnh rẽ nhánh và điều khiển: JMP, CALL, RET, INT, LOOP, CLI, STI, ... - Nhóm lệnh vào ra: IN, OUT

- Các lệnh khác: logic, thao tác bít, xử lý xâu... - Phần địa chỉ: là phần thông tin xác định nơi chứa toán hạng.

Các nơi có thể chứa toán hạng: + Tức thời trong lệnh (giá trị toán hạng nằm ngay trong lệnh). + Các thanh ghi của CPU. + Bộ nhớ.

1.4.7.2 Các phương pháp xác định địa chỉ toán hạngCác phương pháp xác định địa chỉ toán hạng (Các phương pháp định vị toán hạng)

cho phép xác định nơi chứa toán hạng. Nơi chứa toán hạng có thể là: Trên lệnh, thanh ghi và bộ nhớ. Bộ nhớ mặc định được hiểu là đoạn dữ liệu, xác định địa chỉ ô nhớ là xác định địa chỉ offset hiệu dụng của ô nhớ trong đoạn đó. Trong các trường hợp khác cần chỉ rõ đoạn nhớ cần truy nhập, ví dụ ES: [địa chỉ offset].

Có ba nhóm chế độ định vị toàn hạng + Định vị tức thời + Định vị thanh ghi + Định vị bộ nhớ.

Các thao tác có thể xẩy ra giữa các đối tượng sau: Thanh ghi Tức thời Thanh ghi Thanh ghi Bộ nhớ Tức thời Bộ nhớ Thanh ghi- Định vị tức thời: Dữ liệu nằm ngay trong câu lệnh

35

Page 36: Giáo trình kiến trúc máy tính ICTU

Ví dụ: MOV AX. 0F000h: đưa giá trị F000h vào AX- Định vị thanh ghi : Các thanh ghi đa năng, các thanh ghi địa chỉ hoặc các thanh ghi đoạn

của CPU là nơi chứa dữ liệu. Ví dụ: MOV AX. BX: đưa giá trị ở BX và AX - Định vị bộ nhớ: Phương pháp định vị bộ nhớ cho phép xác định địa chỉ offset (địa chỉ

lệch) của ô nhớ chứa toán hạng, ô nhớ mặc định nằm trong đoạn dữ liệu. Có các phương pháp định vị bộ nhớ sau: - Định vị trực tiếp - Định vị gián tiếp. - Định vị cơ sở - Định vị chỉ số - Định vị cơ sở chỉ số - Định vị đầy đủ.+ Định vị trực tiếp : Địa chỉ ô nhớ chứa dữ liệu nằm ngay trong lệnh.

Địa chỉ offset = [giá trị cụ thể] Ví dụ: MOV AX, [1000h]: Đưa nội dung ô nhớ có địa chỉ

DS: 1000h vào AX MOV AX. ALFA: ALFA là tên tiến đã được khai báo

+ Định vị gián tiếp (thanh ghi). Các thanh ghi địa chỉ BX, BP, SI, DI, SP là nơi chứa địa chỉ ô dữ liệu. Ví dụ: MOV AX, [BX] ; Trong đó [BX]: = 1000h : lệnh thực hiện đưa nội dung ô nhớ có địa chỉ DS:1000h vào AX.

36

Page 37: Giáo trình kiến trúc máy tính ICTU

+ Định vị cơ sở :

Phương pháp định vị cơ sở thường được dùng trong các thao tác với phần tử mảng dữ liệu hoặc với các cấu trúc dữ liệu tương đương. Ví dụ: MOV AX, [BX + 10h] ; Trong đó [BX] = 1000h, lệnh thực hiện đưa nội dung ô nhớ có địa chỉ DS:1010h vào AX.

+ Định vị chỉ số :

Ví dụ: MOV AX, [SI + 1000h] ; Trong đó [SI] = 10h. lệnh thực hiện đưa nội dung ô nhớ có địa chỉ DS:1010h vào AX.

Điều khác biệt giữa phương pháp định vị chỉ số so với phương pháp định vị cơ sở bắt đầu từ hệ 32 bit là có thể viết (SI*bội số). (DI*bội số). Bội số là 1, 2, 4, 8.

- Định vị cơ sở chỉ số :

Ví dụ: MOV AX, [BX + SI] ;trong đó [BX] =1000h, [SI] =10h. Lệnh thực hiện đưa nội dung ô nhớ có địa chỉ

DS:1010h vào AX.

37

Page 38: Giáo trình kiến trúc máy tính ICTU

Phương pháp định vị cơ sở chỉ số thường được dùng trong các thao tác với mảng dữ liệu hoặc với các cấu trúc dữ liệu tương đương. - Định vị đầy đủ :

Địa chỉ offset= [Thanh ghi cơ sở + Thanh ghi chỉ số + khoảng dịch].

Phương pháp định vị này thường được dùng trong các thao tác với mảng dữ liệu hai chiều hoặc với các cấu trúc dữ liệu phức tạp.1.5. Kỹ thuật đường ống và kỹ thuật xử lý song song mức lệnh

Đặt vấn đềViệc thi hành một lệnh mã máy thường được chia thành 5 giai đoạn: 1. Nhập lệnh (FI Fetch the Instruction) 2. Giải mã lệnh (DI Decode the Instruction) 3. Tạo địa chỉ toán hạng (GOA Generate Operand Address) 4. Nhập toán hạng (FO Fetch Operands) 5. Thực hiện lệnh (EI Execute Instruction)

Với kỹ thuật xử lý lệnh thông thường, đơn vị xử lý trung tâm phải tuần tự thực hiện xong tất cả các giai đoạn thực hiện một lệnh, thường là sau 5 chu kỳ máy, rồi mới chuyển sang nhập và thực hiện lệnh tiếp theo. Để tăng tốc độ xử lý lệnh mà không nhất thiết phải tăng tần số nhịp của máy, người ta sử dụng các kỹ thuật khác như kỹ thuật xử lý lệnh kiểu đường ống (Pipeline) và kỹ thuật xử lý lệnh song song (ILP).

1.5.1. Kỹ thuật xử lý lệnh kiểu đường ống (Pipeline)

38

Page 39: Giáo trình kiến trúc máy tính ICTU

Kỹ thuật xử lý lệnh kiểu đường ống được sử dụng trong các đơn vị xử lý trung tâm từ đời đơn vị xử lý trung tâm Intel 8086.

Đường ống tương tự như dây chuyền sản xuất nhiều công đoạn. ở dây chuyền sản xuất, mỗi công đoạn thực hiện một thao tác sản xuất. Sản phẩm được chuyển và hình thành dần sau mỗi công đoạn sản xuất, cho đến khi được hoàn thành ở công đoạn cuối cùng.

Trong kỹ thuật xử lý lệnh theo kiểu đường ống, việc thực hiện lệnh cũng được thực hiện qua 5 giai đoạn, giai đoạn nọ tiếp sau giai đoạn kia, cho đến khi thực hiện xong lệnh. Với một đường ống 5-giai đoạn, tại mỗi chu kỳ máy có 5 bộ dữ liệu thuộc 5 giai đoạn xử lý được gửi vào đường ống và 5 thao tác được thực hiện đồng thời, nhờ vậy nếu tính từ khi thực thi xong lệnh đầu tiên thì cứ sau mỗi chu kỳ máy lại có một lệnh được hoàn thành và một lệnh mới được nhập.

Kỹ thuật đường ống cho phép tăng tốc độ thực hiện lệnh lên gấp nhiều lần: So sánh với kiểu xử lý tuần tự thông thường, 5 lệnh được thực hiện trong 25 chu kỳ xung nhịp, thì xử lý lệnh theo kỹ thuật ống dẫn thực hiện 5 lậnh chỉ trong 9 chu kỳ xung nhịp. Nhược điểm: Ta thấy rằng toàn bộ lệnh được xử lý không phải là những lệnh độc lập, mà còn một phần khá lớn những lệnh phụ thuộc. Đơn giản nhất là những lệnh trong thuật toán xoay vòng: phép tính sau phải chờ kết quả của phép tính ngay trước mới có thể thực hiện. Đây chính là điểm yếu của kiến trúc pipeline. Khi lệnh trước (vd lệnh 1) được thực hiện ở giai đoạn n+1 của pipeline, lệnh kế sau nó (vd lệnh 2) đã được nạp vào và thực hiện ở giai đoạn n, nhưng nếu lệnh 2 là phụ thuộc kết quả của lệnh 1, thì mặc dù lệnh 2 này vẫn được nạp vào pipeline nhưng nó vẫn không hề được xử lý. Sau khi lệnh 1 xử lý xong, ra kết quả, toàn bộ lệnh trong pipeline hiện thời dù đang được xử lý ở bậc nào đều phải "tống ra ngoài" để nạp lệnh 2 lại từ giai đoạn đầu tiên. Quá trình thải - nạp - xử lý lại này mất rất nhiều thời gian (có 10 giai đoạn thì chỉ phải thải, nạp và xử lý lại 10 giai đoạn, còn có 30 giai đoạn thì...), nên đây chính là nhược điểm lớn của cấu trúc pipeline dài, tuỳ vào từng soft, nhược điểm này sẽ cân bằng, lớn hơn, hoặc nhỏ hơn so với ưu điểm nói trên. Chính do trong một tập lệnh có sự tồn tại của cả những lệnh độc lập và phụ thuộc, nên trong CPU mới cần bộ tiên đoán nhánh BPU. BPU làm nhiệm vụ tiên đoán xem lệnh nào là phụ thuộc, độc lập, và xếp thứ tự chúng sao cho việc xử lý có lợi nhất. VD pipeline có 20 giai đoạn thì 2 lệnh phụ thuộc nhau sẽ được xếp cách nhau 19 lệnh khác. Lúc đó khi lệnh trước vừa xử lý xong ở giai đoạn thứ 20 thì kết quả của nó sẽ được chuyển ngay đến lệnh phụ thuộc kế sau nó vừa được nạp vào giai đoạn 1, và 19 lệnh xen giữa 2 lệnh này vẫn được xử lý bình thường.1.5.2. Kỹ thuật ILP (xử lý song song mức lệnh)

39

Page 40: Giáo trình kiến trúc máy tính ICTU

Kỹ thuật ILP là kỹ thuật thiết kế đơn vị xử lý trung tâm và chương trình dịch nhằm làm tăng tốc độ các thao tác máy (như ghi-đọc bộ nhớ) và thực hiện các phép tính. Trong các kỹ thuật

ILP có kỹ thuật superscalar, trong đó tại một chu kỳ máy, nhiều lệnh được nhập và được thực hiện đồng thời trên nhiều đường ống khác nhau.

Pentium là loại đơn vị xử lý trung tâm được thiết kế theo kỹ thuật superscalar, trong đó hai lệnh được nhập và giải mã đồng thời. Pentium có hai đường ống thực hiện lệnh song song U và V. Quá trình thực hiện lệnh được mô tả như sau :

Chu kỳ 1 2 3 4 5 6 7

FI DIGOA FO EIGOA FO EI

FI DIGOA FO EIGOA FO EI

FI DIGOA FO EIGOA FO EI

Trong một máy tính siêu vô hướng phần cứng phải quản lý việc đọc và thi hành đồng thời nhiều lệnh. Vậy nó phải có khả năng quản lý các quan hệ giữa số liệu với nhau. Cũng cần phải chọn các lệnh có khả năng được thi hành cùng một lúc. Những bộ xử lý đầu tiên đưa ra thị trường dùng kỹ thuật này là các bộ xử lý Intel i860 và IBM RS/6000. Các bộ xử lý này có khả năng thực hiện song song nhiều tác vụ trên số nguyên và trên số lẻ.

Năm 1992, người ta thấy xuất hiện các bộ xử lý có nhiều bộ thực hiện tác vụ độc lập với nhau (nhiều ALU, bộ tính toán số lẻ, nạp dữ liệu, lưu dữ liệu, nhảy), có thể thực hiện song song nhiều lệnh (lệnh tính số nguyên, số lẻ, lệnh bộ nhớ, lệnh nhảy...). Số lệnh có thể được thi hành song song càng nhiều thì phần cứng thực hiện việc này càng phức tạp.

40

Page 41: Giáo trình kiến trúc máy tính ICTU

Chương 2 Tổ chức bộ nhớ trong máy vi tính PC

2.1. Tổ chức bộ nhớ theo phân cấp- Hệ thống nhớ của máy tính ngày nay gồm các loại sau:+ Các thanh ghi bên trong CPU+ Bộ nhớ trong (bộ nhớ chính): có RAM +ROM+ Bộ nhớ ngoài: có ổ đĩa cứng, ổ đĩa mềm, ổ đĩa quang, đĩa CD,…+ Bộ nhớ cacheMỗi loại bộ nhớ có vai trò thế nào? và các loại bộ nhớ này được tổ chức như thế nào?- Một trong các chức năng của CPU là tuần tự nhập lệnh từ bộ nhớ chính và thực hiện lệnh mà tốc độ truy nhập bộ nhớ chính (bộ nhớ thao tác) tương đối chậm (với DRAM là khoảng 100ns = 1.10-7s) so với khả năng của CPU (ví dụ với Pentium IV 3,4 GHz thì tần số xung nhịp trong là tần số xung nhịp ngoài 200MHz * 17)Nếu CPU nhập các lệnh và dữ liệu trực tiếp từ bộ nhớ chính thì tốc độ xử lý thực của CPU phụ thuộc vào tốc độ truy nhập của bộ nhớ chính Kỹ thuật được sử dụng để giảm thời gian trung bình truy nhập bộ nhớ chính là thêm một bộ nhớ có tốc độ truy nhập cao, bộ nhớ SRAM vào hệ thống lưu trữ. Bộ nhớ loại này được gọi là bộ nhớ cache (bộ nhớ ẩn).- Mặt khác dung lượng nhớ của bộ nhớ chính cũng khá hạn chế, do vậy nếu hệ thống lưu trữ chỉ gồm bộ nhớ chính cũng sẽ hạn chế khả năng của CPU giải pháp đưa ra là sử dụng bộ nhớ ngoài như là một thành phần của hệ thống bộ nhớ để tăng khả năng lưu trữ thông tin của máy tính.- Ý tưởng chính trong việc sử dụng hệ thống bộ nhớ có phân cấp là: Tại một thời khoảng thì các lệnh và dữ liệu được sử dụng thường đều nằm ở một khu vực tương đối nhỏ trong bộ nhớ chính. Các vùng này luôn chuyển dịch khi chạy chương trình do đó người ta tổ chức hệ thống bộ nhớ máy tính theo kiểu hệ thống có phân cấp. Cụ thể như hình vẽ sau:

41

Page 42: Giáo trình kiến trúc máy tính ICTU

+ Các thanh ghi: Là đơn vị lưu trữ, có kích thước nhỏ (dài 8bits, 16bits, 32bits) nằm ngay trong CPU do vậy tốc độ truy cập rất nhanh. Chúng được dùng để chứa toán hạng của lệnh.

+ Bộ nhớ cache: có dung lượng lớn hơn các thanh ghi, được chế tạo theo kiểu SRAM (đơn vị nhớ cơ bản tĩnh là một mạch lật flip-flop), nằm giữa bộ nhớ chính CPU. Được sử dụng để lưu trữ các các lệnh và dữ liệu thường được sử dụng nhiều trong quá trình thực hiện chương trình.

+ Bộ nhớ chính: Có dung lượng lớn hơn bộ nhớ cache, được tạo bởi các vi mạch nhớ bán dẫn DRAM nên có tốc độ truy xuất chậm hơn bộ nhớ cache. Bộ nhớ chính chứa mã lệnh chương trình và dữ liệu của chương trình đang chạy hiện thời như các chương trình điều khiển hoạt động của hệ thống, các chương trình ứng dụng . Nó cho phép CPU nhận lệnh từ đây để khởi động hệ thống. Các chương trình ứng dụng cũng như các dữ liệu cùng các kết quả tạm thời được lưu trữ trong RAM.

+ Bộ nhớ ngoài: Dung lượng lớn, thông tin vẫn được lưu trữ khi mất nguồn nuôi. Bộ nhớ ngoài dùng để chứa chương trình của hệ điều hành, các chương trình ứng dụng, kết quả phép tính…

Nhận xét: Tốc độ truy cập của CPU sẽ giảm dần theo từng cấp của bộ nhớ từ các thanh ghi trong CPU tới bộ nhớ thứ cấp (đĩa từ). Dung lượng nhớ sẽ tăng dần tính từ CPU -> bộ nhớ thứ cấp (đĩa từ)

- Cơ sở của việc quản lý hệ thống bộ nhớ có phân cấp là dựa trên nguyên lý quy chiếu phân vùng (Mọi dữ liệu trong một cấp thì được gặp lại trong cấp thấp hơn và có thể tiếp tục gặp lại trong cấp thấp nhất), như hình sau:

Khi CPU cần truy xuất dữ liệu: + Nếu dữ liệu nằm ngay trong thanh ghi thì CPU truy xuất ngay và đưa vào xử lý.+ Nếu dữ liệu nằm ngoài thanh ghi: thì dữ liệu sẽ được tìm và nạp dữ liệu từ bộ nhớ

cache sau đó sẽ được đưa vào thanh ghi.

42

Page 43: Giáo trình kiến trúc máy tính ICTU

+ Nếu dữ liệu không có trong bộ nhớ cache thì dữ liệu sẽ được tìm nạp trong RAM sau đó đưa vào cache.

+ Nếu dữ liệu không có trong RAM thì dữ liệu tiếp tục được tìm nạp trong bộ nhớ ngoài.

Như vậy để tăng tốc độ truy xuất bộ nhớ thì cần phải có chương trình hoán vị dữ liệu (Swapping) để thực hiện luân chuyển các khối dữ liệu vào bộ nhớ cache để sao cho xác suất tìm thấy dữ liệu trong bộ nhớ cache là lớn nhất.2.2. Tổ chức cache

Thủ tục quản lý bộ nhớ phân cấp có cache là nạp từng đoạn chương trình và dữ liệu từ bộ nhớ chính vào cache. Phương pháp đơn giản nhất được dùng để quy chiếu bộ nhớ có cache là phương pháp ánh xạ trực tiếp.

Việc quy chiếu đến cache được gọi là "trúng" (hit) nếu truy nhập được thông tin (nằm trong ô nhớ có địa chỉ CPU đòi hỏi) ở trong cache, và gọi là "trượt" (miss) nếu không truy nhập được thông tin ở trong cache và phải đọc từ bộ nhớ chính.

Bộ nhớ chính được chia thành nhiều khối, mỗi khối bao gồm nhiều từ hoặc nhiều byte .Địa chỉ thấp

Khối 0 1từ (1byte) 00Khối 1 1từ (1byte) 01Khối 2 1từ (1byte) 10Khối 3 1 từ (1byte) 11Khối 4 1 từ (1byte) 00Khối 5 1 từ (1byte) 01Khối 6 1 từ (1byte) 10

Bộ nhớ cache có thể chứa nhiều khối, gọi là khối cache. Mỗi khối cache nằm ở một vị trí xác định trong cache. Mỗi khối cache chứa các thông tin như: số hiệu thẻ, bit cờ và bản thân khối dữ liệu (khối dữ liệu trong cache là bản sao của khối dữ liệu trong bộ nhớ chính).

Cấu trúc một khối cache như sau: Số hiệu thẻ F Khối dữ liệu

Giả thiết bộ nhớ có 224 ô nhớ. Nếu cache có 22 vị trí chứa (khối cache) thì số lượng thẻ sẽ là 224/22 = 222 (=4triệu thẻ).

2.2.1. Trường hợp mỗi khối chứa một từ (hoặc 1 byte) dữ liệu a) Thao tác đọc bộ nhớ Giả sử có bộ nhớ chính có BUS địa chỉ 24 bít và cache có 4 khối. Khi một từ (1byte) dữ liệu được đọc thì CPU cung cấp địa chỉ cho bộ điều khiển bộ nhớ.

Bộ điều khiển bộ nhớ tách địa chỉ 24 bit làm hai phần như hình dưới: - 2 bit địa chỉ thấp nhất được đặt vào thanh ghi địa chỉ MAR của cache. Các

bit này xác định vị trí (thứ tự) khối cần tìm trong cache.

43

Page 44: Giáo trình kiến trúc máy tính ICTU

- 22 bit địa chỉ cao mô tả số hiệu thẻ. Số hiệu thẻ là con số xác định vị trí của khối nhớ trong bộ nhớ.

Thao tác đọc dữ liệu từ bộ nhớ được tiến hành như sau: Bước 1: bộ điều khiển cache đọc khối dữ liệu trong cache tại vị trí có số thứ tự trùng với

phân số thứ tự khối trong địa chỉ trên BUS. Bước 2: bộ điều khiển cache xác định xem số hiệu thẻ của khối trong cache này có

trùng với số hiệu thẻ trong địa chỉ BUS hay không. Bước 3: nếu trùng thì việc quy chiếu là "trùng" và một từ dữ liệu được đọc từ cache vào

CPU. Nếu không trùng (trường hợp "trượt") thì từ dữ liệu phải được lấy từ bộ nhớ chính. Trong trường hợp "trượt" cần phải sao lưu dữ liệu trong cache vào bộ nhớ chính theo địa chỉ của nó, sau đó mới nạp dữ liệu mới cùng với thẻ của nó vào cache và đặt bit cờ F = 0 (ghi nhận nội dung cache trùng với nội dung bộ nhớ chính) và dữ liệu được cung cấp cho CPU.

Số thẻ cache trong các khối cache có thể trùng nhau (khi khối cache chưa bị thay thế) và có thể khác nhau (khi nội dung khối cache bị thay).

b) Thao tác ghi bộ nhớCó một vài kỹ thuật được dùng để ghi dữ liệu vào bộ nhớ chính khi thực hiện các lệnh ghi bộ

nhớ: Kỹ thuật ghi xuyên (write through) và kỹ thuật sao lưu (copy back).+ Ở loại cache ghi xuyên (write through) dữ liệu được ghi lên cả cache lẫn bộ nhớ chính

cùng một lúc, không dùng đến bit cờ F. Kỹ thuật này làm cho thời gian ghi bộ nhớ tăng lên. + Ở loại cache sao lưu (copy back) thì dữ liệu chỉ được ghi vào cache và

bit cờ F được lập (F = 1), ghi nhận nội dung cache khác với nội dung bộ nhớ chính. Sau đó nếu khối dữ liệu cần được thay thế bằng khối dữ liệu khác từ bộ nhớ chính (trường hợp "trượt") thì bit cờ F được kiểm tra để xác định xem có cần thực hiện thao tác sao lưu này không, nếu F = 1 thì cần thực hiện sao lưu, nếu F = 0 thì không cần sao lưu. Kỹ thuật này làm tăng tốc độ thao tác với bộ nhớ và được gọi là kỹ thuật sao lưu có dựng cờ. 2.2.2. Trường hợp mỗi khối chứa nhiều từ dữ liệu

Khi có nhiều từ dữ liệu trong một khối thì kỹ thuật ánh xạ trực tiếp phức tạp hơn. Giả

44

Page 45: Giáo trình kiến trúc máy tính ICTU

thiết địa chỉ là 24 bit và mọi khối gồm 4 từ (hoặc byte) dữ liệu. Địa chỉ trên BUS sẽ được tách thành ba phần (hình dưới):

Phần xác định số thứ tự từ (hoặc byte) trong một khối, ví dụ là 2 bit. Các bít này xác định vị trí từ dữ liệu cần truy nhập nằm trong khối cache.

Phần xác định số thứ tự khối, ví dụ là 2. Phần số liệu thẻ, ví dụ là 20 bit.Các thao tác khác được thực hiện tương tự như đã trình bày ở trên.

2.2.3. Kỹ thuật tập liên hợpVấn đề tốc độ lại được đặt ra khi CPU liên tục nhập 2 (hoặc 4) lệnh có cùng địa chỉ

khối nhớ (các bit địa chỉ thấp của các khối nhớ trùng nhau). Cách giải quyết là chứa 2 (hay 4) khối nhớ nói trên tại vùng một vị trí (một khối)

trong cache, nhưng mỗi khối có một thẻ riêng. Khi vị trí này trong cache được truy nhập thì cả 2 (hay 4) thẻ trong 2 khối con (hoặc 4 khối con) cùng được kiểm tra. Các khối con này tạo thành một tập liên hợp (hình dưới)

Kỹ thuật đặt nhiều (2 hoặc 4) khối vào cùng một vị trí trong cache được gọi là kỹ thuật tập liên hợp.

2.3 Tổ chức bộ nhớ máy vi tính PCCó hai cách tổ chức quản lý bộ nhớ: tổ chức theo phân đoạn và tổ chức tuyến tính.Ở cách tiếp cận theo phân đoạn chương trình và dữ liệu được người lập trình chia thành

45

Page 46: Giáo trình kiến trúc máy tính ICTU

các modul. Mỗi modul có một không gian địa chỉ riêng. Mỗi modul được gọi là một đoạn và được gần một con số, gọi là địa chỉ đoạn. Mỗi ô nhớ trong đoạn được xác định bởi địa chỉ logic gồm hai con số: địa chỉ đoạn và địa chỉ offset (địa chỉ lệch). Các modul được nạp vào bộ nhớ và được quản lý theo cơ chế phân đoạn.

Ở cách tiếp cận tuyến tính, một bộ nhớ với không gian địa chỉ rất lớn (ảo) được cung cấp cho chương trình. Địa chỉ này là địa chỉ tuyến tính và bắt đầu từ 0. Chương trình được chia thành các khuc nhỏ có kích thước cố định, mỗi khúc này được gọi là một trang, và được nạp vào bộ nhớ vật lý. Mỗi chương trình được hệ điều hành quản lý bằng một bảng trang. Các khúc chương trình chứa trong bộ nhớ được quản lý theo cơ chế phân trang. Nhiệm vụ đang chạy tại một thời điểm chỉ cần một số ít trang chương trình và dữ liệu trong bộ nhớ vật lý, nên kỹ thuật quản lý bộ nhớ theo trang là một kỹ thuật thích hợp cho việc tổ chức bộ nhớ ảo.

Người ta có thể kết hợp cả hai cách nói trên để quản lý bộ nhớ.2.3.1. Cơ chế quản lý bộ nhớ theo phân trang

Các CPU x86 32 bit có phần cứng hỗ trợ quản lý bộ nhớ trong chế độ bảo vệ theo cả hai cơ chế phân đoạn và phân trang. Cơ chế quản lý bộ nhớ theo phân đoạn đã được trình bày ở chương 1. Trong phần này ta chỉ xét cơ chế quản lý bộ nhớ theo phân trang.

Đơn vị quản lý bộ nhớ chuyển địa chỉ logic gồm địa chỉ nền đoạn 32 bit và địa chỉ offset 32 bit thành địa chỉ tuyến tính.

Nếu chọn cách quản lý theo phân đoạn thì địa chỉ tuyến tính sẽ là địa chỉ vật lý.Nếu chọn cách quản lý theo phân trang thì đơn vị quản lý bộ nhớ sẽ chuyển địa chỉ

tuyến tính thành địa chỉ vật lý theo cơ chế quản lý theo phân trang.

Trong cơ chế quản lý theo trang, chương trình được chia thành các khúc nhỏ có kích thước xác định, được gọi là trang. Mỗi trang chương trình được gán vào từng đoạn nhỏ của bộ nhớ, mỗi đoạn nhỏ chứa trang được gọi là một khung trang.

Hệ điều hành quản lý quá trình thực hiện chương trình bằng bảng trang. Bảng trang chỉ ra vị trí khung trang (địa chỉ nền) của mỗi trang chương trình. CPU dựa vào vị trí khung trang và địa chỉ offset của ô nhớ trong trang để tính ra địa chỉ vật lý của ô nhớ.

Cấu trúc của hệ thống quản lý gồm 3 phần: thư mục trang (Page Directory), bảng trang (Page Table) và trang (Page). Thư mục trang, bảng trang và trang đều có cùng một kích thước là 4Kbyte.

Thư mục trang: Thư mục trang có kích thước 4Kbyte. Thư mục trang chứa tới 1024 Lối vào thư mục trang

PDE (Page Directory Entry). PDE có kích thước 32 bit (4 byte). Mỗi PDE chứa 20 bít địa chỉ nền bảng trang (trỏ đến

nền bảng trang). Mỗi một thư mục trang có thể quản lý được tới 1024 bảng trang.

46

Page 47: Giáo trình kiến trúc máy tính ICTU

Cấu trúc một PDE trong thư mục trang: 31 12 11 0

Địa chỉ bảng trang (20bit) Thông tin về bảng trangPhần địa chỉ bảng trang chứa 20 bit cao của địa chỉ nền bảng trang (địa chỉ bắt đầu một

bảng trang), 12 bít thấp của địa chỉ nền bảng trang luôn bằng 0. Phần thông tin về bảng trang chứa các thông tin về quyền truy nhập bảng trang và một số

thuộc tính khác của trang. Các bit 1 và 2 trong mỗi PDE cung cấp mức đặc quyền và quyền ghi/đọc v.v... của tất cả các trang trỏ bởi PDE này.

Trong cơ chế quản lý bộ nhớ theo trang, 10 bit cao (từ bit 22 đến bit 31) của địa chỉ tuyến tính được dùng để xác định vị trí của PDE trong thư mục trang (vị trí so với nền thư mục trang).

Bảng trang: Bảng trang có kích thước 4 Kbyte. Bảng trang chứa 1024 lối vào bảng trang PTE (Page

Table Entry). PTE có kích thước 32 bit (4 byte). Mỗi PTE chứa địa chỉ nền của một trang 4Kbyte, do

vậy một bảng trang có thể quản lý được tới 1024 trang. Cấu trúc một PTE: 31 12 11 0

Địa chỉ trang (20bit) Thông tin về trang

Phần Địa chỉ trang chứa 20 bit cao của địa chỉ vật lý nền trang (địa chỉ vật lý bắt đầu một trang), 12 bít thấp của địa chỉ nền trang luôn bằng 0.

Phần Thông tin về trang chứa các thông tin về quyền truy nhập trang và một số thuộc tính khác của trang. Các bít 1 và 2 trong mỗi PTE cung cấp mức đặc quyền và quyền ghi/đọc, v.v... của tất cả các trang trỏ bởi PTE này.

Trong cơ chế quản lý bộ nhớ theo trang, 10 bit của địa chỉ tuyến tính (từ bit 12 đến bít 21) được dùng để xác định vị trí của PTE trong bảng trang (vị trí so với nền bảng trang).

Có hai mức đặc quyền được dùng để bảo vệ trang: mức chương trình ứng dụng (tương đương mức 3 trong quản lý theo đoạn) và mức chương trình giám sát (tương đương mức 0, 1, 2 trong quản lý theo đoạn).

Mức thấp nhất trong hai mức của PDE và PTE được lấy làm mức đặc quyền và quyền ghi/đọc của từng trang.

Địa chỉ vật lý của ô nhớ trong trang được tính bằng cách kết hợp 20 bit cao (phần địa chỉ trang) trong PTE với 12 bit thấp nhất trong địa chỉ tuyến tính. 2.3.2 Cơ chế truy nhập bộ nhớ theo trang

Các máy tính PC loại 32 bit quản lý bộ nhớ theo cách kết hợp hai cơ chế phân đoạn và phân trang. Để truy nhập một ô nhớ CPU cần có một địa chỉ logic, gồm địa chỉ nền đoạn (nhận được từ bộ mô tả đoạn theo cơ chế đã được trình bày Chương I) và địa chỉ offset. Địa chỉ logic này được chuyển thành địa chỉ tuyến tính. Địa chỉ tuyến tính này được dùng để tính địa chỉ vật lý và truy nhập ô nhớ theo cơ chế phân trang (hình bên dưới).

Khi truy nhập theo cơ chế phân trang địa chỉ tuyến tính được tách thành 3 phần:

47

Page 48: Giáo trình kiến trúc máy tính ICTU

+ A31 ÷ A22: 10bit chỉ số PDE, xác định vị trí PDE trong thư mục trang.+ A21 ÷ A12: 10 bit chỉ số PTE, xác định vị trí PTE trong bảng trang. + A11 ÷ A0: là 12 bít địa chỉ offset của ô nhớ trong trang.

Địa chỉ vật lý của ô nhớ trong trang được tính bằng cách kết hợp 20 bit cao (phần địa chỉ trang) trong PTE với 12 bit thấp (A11÷A0) nằm trong địa chỉ tuyến tính này.

48

Page 49: Giáo trình kiến trúc máy tính ICTU

Chương 3 Các phương pháp vào ra dữ liệu trong máy vi tính

3.1. Cấu trúc phần cứng của hệ thống vào/ra dữ liệu- Đơn vị xử lý trung tâm CPU thực hiện trao đổi thông tin với các thiết bị ngoại vi và thế

giới bên ngoài thông qua thiết bị giao diện. Thiết bị giao diện là loại thiết bị khả trình. Mỗi một thiết bị giao diện đều có ba loại thanh ghi, mỗi loại thực hiện một chức năng khác nhau, đó là các thanh ghi điều khiển (control), thanh ghi trạng thái (status) và thanh ghi dữ liệu (data). Mỗi một thanh ghi đều được gán một địa chỉ xác định, gọi là địa chỉ cổng.

+ Các thanh ghi điều khiển (thanh ghi CONTROL) nhận và chứa các từ điều khiển xác lập chế độ làm việc của thiết bị.

+ Các thanh ghi trạng thái (thanh ghi STATUS) chứa thông tin phản ảnh trạng thái làm việc của thiết bị giao diện và thiết bị ngoại vi.

+ Các thanh ghi dữ liệu (thanh ghi DATA) thực hiện chức năng bộ đệm tạm chứa dữ liệu vào/ra.

Khi CPU đưa một dữ liệu ra ngoài (khi CPU thực hiện lệnh OUT xuất một dữ liệu ra cổng có địa chỉ xác định) thực chất là CPU đưa dữ liệu ra thanh ghi dữ liệu của thiết bị giao diện, thiết bị giao diện sẽ chuyển nó thành dạng thích hợp với thiết bị ngoại vi rồi mới đưa ra ngoài cho thiết bị ngoại vi. Khi thiết bị ngoại vi gửi một dữ liệu cho máy tính, dữ liệu này được đưa vào thanh ghi dữ liệu trong thiết bị giao diện. CPU nhập dữ liệu từ ngoài bằng cách đọc thanh ghi dữ liệu đệm này.

VD: OUT port 378, AL: Đưa nội dung thanh ghi AL ra cổng máy in

3.2. Các phương pháp vào/ra dữ liệu3.2.1 Phân loại

Thiết bị giao diện chỉ giúp CPU kết nối một cách thích hợp về mặt vật lý các thiết bị bên ngoài, nhưng chưa đảm bảo tính tin cậy của quá trình trao đổi thông tin. Điều này xuất phát từ một số nguyên nhân khách quan là nhịp làm việc và tốc độ làm việc của CPU khác xa thiết bị bên ngoài nhiều. Để CPU có thể thực hiện trao đổi thông tin với các thiết bị bên ngoài có độ tin cậy cao cần phải áp dụng các phương pháp vào ra thích hợp, các phương pháp này được gọi là các phương pháp vào ra dữ liệu.

Có 4 phương pháp vào ra dữ liệu, nằm trong hai nhóm phương pháp khác nhau (hình

49

Page 50: Giáo trình kiến trúc máy tính ICTU

vẽ):

3.2.2 Phương pháp vào/ra dữ liệu theo định trìnhPhương pháp vào ra theo định trình là phương pháp trong đó quá trình vào ra được thực

hiện theo một chu kỳ xác định trước, nhờ các lệnh vào ra ( lệnh IN hoặc OUT) và CPU không quan tâm đến trạng thái của thiết bị vào ra ( gồm thiết bị giao diện và thiết bị ngoại vi). .

Ưu điểm: Phương pháp này phù hợp với những quá trình vào/ra có chu kỳ cố định và có thể xác định trước.

Nhược điểm: Độ tin cậy không cao

50

Page 51: Giáo trình kiến trúc máy tính ICTU

3.2.3 Phương pháp vào/ra dữ liệu theo kiểu thăm dòVấn đề điều khiển vào/ra dữ liệu sẽ là đơn giản nếu thiết bị ngoại vi luôn sẵn sàng để làm

việc với CPU. Ví dụ, với thiết bị vào như bộ phận đo nhiệt độ số lắp sẵn trong một hệ thống điều khiển lúc nào cũng có thể cung cấp số đo về nhiệt độ của đối tượng cần điều chỉnh, hay thiết bị ra như bộ đèn LED dùng để hiển thị giá trị nhiệt độ trong hệ thống nói trên thì lúc nào cũng có thể biểu hiện thông tin đó. Như vậy khi CPU cần có thông tin về nhiệt độ của đối tượng thì nó chỉ việc đọc dữ liệu tại cổng phối ghép với bộ đo nhiệt độ và nếu CPU muốn biểu diễn thông tin vừa đọc lên đèn LED thì nó chỉ việc đưa ra tín hiệu điều khiển tới đó mà không cần kiểm tra xem các thiết bị này có đang sẵn sàng làm việc hay không.

Trong mỗi thiết bị giao diện thường có ít nhất một thanh ghi trạng thái chứa thông tin phản ánh trạng thái làm việc của thiết bị này và của thiết bị ngoại vi. Khi thực hiện phương pháp vào ra có thăm dò, CPU luôn thực hiện kiểm tra trạng thái sẵn sàng làm việc của thiết bị trước khi thực hiện thật sự việc vào ra dữ liệu. Việc kiểm tra trạng thái sẵn sàng của thiết bị bằng cách kiểm tra thông tin trên thanh ghi trạng thái.

Quá trình vào/ra dữ liệu theo phương pháp thăm dò như sau:

Quá trình vào/ra dữ liệu với nhiều thiết bị theo phương pháp thăm dò:

51

Page 52: Giáo trình kiến trúc máy tính ICTU

Ưu điểm của phương pháp thăm dò: do CPU luôn kiểm tra trạng thái sẵn sàng làm việc của thiết bị trước khi thực hiện vào/ra dữ liệu nên quá trình vào/ra dữ liệu kiểu này có độ tin cậy cao.

Nhược điểm: Do CPU luôn phải kiểm tra lần lượt trạng thái làm việc của các thiết bị cho nên tốc độ vào/ra dữ liệu chậm. Hơn nữa, nếu CPU chỉ làm có một công việc là vào/ra dữ liệu (theo phương pháp thăm dò) thì hiệu quả không cao, ngược lại nếu CPU đồng thời phải thực hiện nhiều loại công việc hơn thì thời gian làm việc của CPU sẽ bị chia xẻ, đồng thời độ tin cậy của phương pháp vào/ra thăm dò cũng bị giảm đi rất nhiều.3.2.4 Phương pháp vào/ra dữ liệu theo ngắt cứng

Trong cách vào/ra dữ liệu điều khiển bằng phương pháp thăm dò, trước khi tiến hành trao đổi dữ liệu CPU phải dành toàn bộ thời gian vào việc xác định trạng thái sẵn sàng của thiết bị cần trao đổi. Trong hệ thống VXL với cách làm việc như vậy, thông thường CPU được thiết kế chủ yếu chỉ là để phục vụ cho việc vào/ ra dữ liệu và thực hiện các tác vụ xử lý dữ liệu liên quan.

Trong thực tế, người ta phải tận dụng những khả năng của CPU để thực hiện những công việc khác ngoài việc trao đổi dữ liệu với TBN, chỉ khi nào có yêu cầu trao đổi dữ liệu thì mới yêu cầu CPU tạm dừng công việc hiện tại để phục vụ việc trao đổi dữ liệu. Sau khi hoàn thành thì CPU lại trở lại thực hiện tiếp công việc đang tiến hành, hoặc thực hiện một công việc mới. Cách làm việc như vậy gọi là ngắt cứng để trao đổi dữ liệu. Một hệ thống như vậy có thể đáp ứng rất nhanh với các yêu cầu trao đổi dữ liệu trong khi vẫn có thể thực hiện các công việc khác.

52

Page 53: Giáo trình kiến trúc máy tính ICTU

Ngắt là sự kiện CPU bị tạm dừng tiến trình đang thực hiện để chuyển sang thực hiện quá trình phục vụ ngắt.

Ngắt cứng là phương pháp vào/ra dữ liệu trong đó thiết bị vào/ra chủ động khởi động quá trình vào/ra dữ liệu nhờ hệ thống ngắt cứng.

Thông thường quá trình vào/ra theo ngắt cứng được trợ giúp bởi thiết bị điều khiển ngắt PIC (Programmable Interrupt Controller). PIC có chức năng ghi nhận các yêu cầu ngắt IRQ và cung cấp cho CPU số ngắt đại diện cho địa chỉ của chương trình con phục vụ ngắt và tương ứng yêu cầu ngắt IRQ.

Cấu trúc của hệ thống ngắt cứng:

Quá trình vào ra theo ngắt cứng; - CPU dang thực hiện một chương trình nào đó - Một hoặc nhiều thiết bị vào/ra có yêu cầu được phục vụ phát tín hiệu IRQ cho PIC - Thiết bị PIC phát ra tín hiệu INT cho CPU, đòi CPU phục vụ - CPU thực hiện các thao tác sau:++ Thực hiện nốt lệnh của chương trình hiện hành.++ Lưu địa chỉ trở về (nội dung các thanh ghi CS, IP) và thanh ghi cờ FLAGS vào ngăn

xếp.++ Gửi 2 tín hiệu trả lời ngắt INTA cho PIC- PIC nhận được tín hiệu INTA lần thứ 1 từ CPU thì PIC không gửi gì cho CPU mà

thực hiện chức năng của nó như: Sắp xếp độ ưu tiên cho các yêu cầu ngắt IRQi. - PIC nhận được tín hiệu INTA lần 2 thì nó phát số hiệu ngắt (con số đại diện cho địa chỉ

của chương trình con phục vụ ngắt, và tương ứng với tín hiệu IRQ) cho CPU.- Dựa trên số hiệu ngắt này CPU kích hoạt và thực hiện chương trình con phục vụ ngắt để

thực hiện vào ra dữ liệu. - Khi chương trình phục vụ ngắt kết thúc (Khi CPU thực hiện lệnh IRET) thì CPU khôi

phục địa chỉ trở về vào thanh ghi CS, IP, nội dung thanh ghi FLAGS và tiếp tục tiếp tục thực hiện chương trình vừa bị tạm dừng.

53

Page 54: Giáo trình kiến trúc máy tính ICTU

Ưu điểm: - CPU thực hiện vào ra dữ liệu ngay sau khi có yêu cầu từ TB bên ngoài do vậy quá trình

vào dữ liệu có độ tin cậy cao. - CPU chỉ phục vụ thiết bị vào ra khi có yêu cầu do vậy tăng hiệu quả làm việc của

CPU. Do những ưu điểm này mà phương pháp này được dùng để thực hiện vào/ra dữ liệu với phần

lớn các thiết bị chuẩn của máy tính như: Bàn phím, máy in, thiết bị vào/ra nối tiếp, song song,…Tuy nhiên đối với phương pháp này quá trình chuyển dữ liệu giữa bộ nhớ và thiết bị vào/ra

vẫn phải qua CPU và quá trình vào/ra dữ liệu vẫn do CPU thực hiện nên đây chưa phải là phương pháp vào ra dữ liệu nhanh nhất.3.2.5 Phương pháp vào/ra dữ liệu theo kiểu DMA (truy nhập trực tiếp bộ nhớ - Direct Memory Access)

Trong các cách điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và VXL bằng các cách thăm dò trạng thái sẵn sàng của thiết bị ngoại vi hay bằng cách ngắt bộ VXL như trên, dữ liệu thường được chuyển từ bộ nhớ qua bộ VXL rồi từ đó ghi vào thiết bị ngoại vi hoặc ngược lại, từ thiết bị ngoại vi, dữ liệu được đọc vào qua bộ VXL rồi từ đó ghi vào bộ nhớ. Vì thế tốc độ trao đổi dữ liệu phụ thuộc rất nhiều vào tốc độ thực hiện của các lệnh MOV, IN và OUT của bộ VXL. Do đó tốc độ trao đổi dữ liệu nói chung là chậm.

Trong thực tế có những khi rất cần thiết phải trao đổi dữ liệu thật nhanh với thiết bị ngoại vi: như khi đưa dữ liệu hiển thị ra màn hình hoặc đọc, ghi đĩa ... . Trong các trường hợp đó ta cần có được khả năng ghi/ đọc dữ liệu trực tiếp với bộ nhớ thì mới đáp ứng được yêu cầu về tốc độ trao đổi dữ liệu. Có một phương pháp vào ra dữ liệu đáp ứng được yêu cầu cao về tốc độ vào ra, đó là phương pháp truy nhập trực tiếp bộ nhớ ( phương pháp DMA). Để làm được điều này, các hệ VXL nói chung đều phải dùng thêm mạch chuyên dụng để điều khiển việc truy nhập trực tiếp bộ nhớ (Direct Memory Access Controller, DMAC) và phương pháp này là phương pháp điều khiển vào/ra dữ liệu bằng DMA.

Quá trình vào ra dữ liệu trực tiếp giữa bộ nhớ và thiết bị ngoại vi không qua CPU được gọi là quá trình DMA.

Trong quá trình DMA việc chuyển dữ liệu không được điều khiển bởi CPU mà bởi một thiết bị phần cứng được gọi là bộ điều khiển DMAC(Direct Memory Access Controller)

Cấu trúc hệ thống vào ra dữ liệu theo kiểu truy nhập trực tiếp bộ nhớ như sau.

Quá trình DMA được thực hiện như sau:

54

Page 55: Giáo trình kiến trúc máy tính ICTU

Giả sử CPU đang thực hiện bình thường - DMAC được xác lập chế độ làm việc, nhận thông tin về địa chỉ đầu khối nhớ chứa dữ

liệu và kích thước khối dữ liệu cần truyền- Thiết bị vào/ra phát tín hiệu DRQ cho DMAC- DMAC phát tín hiệu HOLD=1 cho CPU, đòi CPU đi vào chế độ DMA- CPU thực hiện nốt chu kỳ máy- CPU phát tín hiệu HLDA trả lời cho DMAC và tự tách ra khỏi hệ thống BUS. Quyền

điều khiển hệ thống BUS thuộc về DMAC.- DMAC làm chủ hệ thống BUS (bus dữ liệu, bus điều khiển, bus điều khiển)- DMAC tạo ra tín hiệu DACK trả lời thiết bị yêu cầu, phát địa chỉ ô nhớ lên BUS địa

chỉ, phát ra các tín hiệu điều khiển ghi/đọc thiết bị vào/ra và các tín hiệu điều khiển ghi/đọc bộ nhớ và thực hện điều khiển toàn bộ quá trình chuyển dữ liệu trực tiếp giữa thiết bị vào/ra và bộ nhớ.

- Khi một khối dữ liệu được chuyển xong, DMAC kết thúc quá trình DMA bằng việc phát tín hiệu HOLD=0 cho CPU và trả quyền điều khiển hệ thống BUS cho CPU.

- CPU tiếp tục làm việc bình thườngPhương pháp vào ra dữ liệu kiểu DMA được dùng để thực hiện truyền dữ liệu giữa các

thiết bị có khả năng truy xuất thông tin với khối lượng lớn và đòi hỏi tốc độ truy xuất cao như thiết bị đĩa cứng, đĩa mềm và bộ nhớ.

55

Page 56: Giáo trình kiến trúc máy tính ICTU

Chương 4Các thiết bị vào ra

4.1 Các thiết bị giao diện và điều khiển vào/ra dữ liệu4.1.1 Ngắt và bộ điều khiển ngắt PIC 8259

- Một số khái niệm Ngắt là sự kiện CPU bị tạm dừng việc thực hiện quá trình chính và chuyển

sang thực hiện quá trình phục vụ ngắt. Ngắt cứng là phương pháp vào/ra dữ liệu, trong đó thiết bị vào/ra (thiết bị vật tư: bàn phím,

máy in, đồng hồ nhịp thời gian,v.v...) chủ động khởi động quá trình vào/ra. Quá trình phục vụ ngắt cũng được kích hoạt bằng một tín hiệu vật lý từ bên ngoài.

Thuật ngữ "ngắt" xuất phát từ kỹ thuật ngắt cứng. Khi nói đến ngắt cứng, ngắt mềm hoặc ngắt logic (ngoại lệ) là hàm ý nói đến các chương trình con phục vụ hoạt động của hệ thống máy tính và nói đến cách kích hoạt các chương trình con này. Tất cả các chương trình phục vụ ngắt đều có chung đặc điểm: thứ nhất là hầu hết đã được viết sẵn (là các chương trình của hệ điều hành) và được phép sử dụng: thứ hai là địa chỉ của các chương trình con này phải được đặt ở một vùng xác định là bảng vectơ ngắt, nằm trong bộ nhớ chính. Các chương trình con phục vụ ngắt cũng thường được dùng để điều khiển quá trình vào/ra với các thiết bị vào-ra chuẩn bị ở mức vật lý. Các chương trình con phục vụ ngắt cứng được kích hoạt bởi các tín hiệu vật lý IRQ đến thiết bị vào-ra. Các chương trình con phục vụ ngắt mềm là các chương trình hệ thống thực hiện các thao tác vào-ra cơ bản ở mức logic và các hạot động bởi của hệ thống. Các chương trình con phục vụ ngắt mềm được kích hoạt bởi lệnh INT trong hệ lệnh của CPU. Các chương trình con phục vụ ngắt logic cũng phục vụ cho hoạt động của hệ thống, nhưng chúng chỉ được kích hoạt khi CPU thực hiện lệnh và phát sinh một ngoại lệ nào đó.

- Bảng vectơ ngắt Bảng vectơ ngắt là bảng chứa địa chỉ của các chương trình phục vụ ngắt. Bảng này có

256 ô, các ô được đánh số thứ tự lần lượt từ 00h, 01h, ..., 08h, ... 0Fh, 10h, ... FFh. Số thứ tự

56

Page 57: Giáo trình kiến trúc máy tính ICTU

của từng ô trong bảng được gọi là số ngắt. Mỗi ô chứa địa chỉ logic của một chương trình phục vụ ngắt xác định, các địa chỉ này còn được gọi là vectơ ngắt.

Cấu trúc bảng vectơ ngắt ở chế độ thực:

- Hệ thống ngắt cứng CPU được thiết kế để đáp ứng được với các quá trình ngắt cứng. CPU có một đầu vào

nhận tín hiệu ngắt INT, khi nhận được tín hiệu này CPU sẽ phản ứng theo cơ chế ngắt cứng. Trong thực tế có nhiều thiết bị ngoại vi yêu cầu được phục vụ theo phương pháp ngắt cứng (bàn phím, đồng hồ hệ thống, máy in, v.v..) và sinh ra nhiều yêu cầu ngắt, do vậy cần có một bộ điều khiển giúp CPU quản lý và phục vụ các yêu cầu ngắt, đó là bộ điều khiển ngắt PIC (Programmeble Interrupt Controller).

Cấu trúc của hệ thống ngắt cứng như sau:

Hệ

thống ngắt cứng được xây dựng trên cơ sở 2 bộ điều khiển ngắt PIC 8259, mỗi PIC 8259 có thể nhận 8 tín hiệu yêu cầu ngắt IRQ từ thiết bị vào/ra. Hai PIC này được kết nối với nhau theo kiểu ghép tầng (chủ/thợ tức là tín hiệu đầu ra INT của PIC thợ được nối với yêu cầu ngắt IRQ2 của PIC chủ), kết hợp hoạt động để có thể phục vụ được 16 yêu cầu ngắt IRQ.

Chức năng cơ bản của PIC 8259, PIC 8259 là một vi mạch điện tử khả trình được thiết

57

Page 58: Giáo trình kiến trúc máy tính ICTU

kế giúp CPU thực hiện quá trình ngắt cứng, PIC 8259 thực hiện các chức năng sau: + Ghi nhận được 8 yêu cầu ngắt IRQi. Số ngắt này đại diện cho địa chỉ của chương trình

con phục vụ thiết bị yêu cầu ngắt IRQi. + Cho phép chọn và phục vụ các yêu cầu ngắt theo mức ưu tiên+ Cung cấp cho CPU số ngắt tương ứng với yêu cầu ngắt IRQi. Số ngắt này đại diện cho địa

chỉ của chương trình con phục vụ thiết bị yêu cầu ngắt IRQi.

+ Cho phép hoặc không cho phép các yêu cầu IRQi kích hoạt hệ thống ngắt.Thiết bị điều khiển ngắt PIC 8259 và cơ chế hoạt động của hệ thống ngắt cứng: Cấu trúc bên ngoài của PIC 8259 (hình dưới):

+ IRQ0÷IRQ7: Các yêu cầu ngắt từ thiết bị ngoại vi+ -WR/RD: Tín hiệu ghi/đọc

Ý nghĩa các chân tín hiệu của PIC 8259 như sau:+ A0: Tín hiệu xác định địa chỉ cổng (vì PIC chủ có 2 địa chỉ là 20h hoặc 21h; PIC thợ có 2 địa chỉ

cổng A0h hoặc A1h).+ INT: tín hiệu yêu cầu đòi CPU phục vụ+ -INTA: Tín hiệu trả lời từ CPU sẵn sàng phục vụ theo phương pháp ngắt cứng.+ CAS0÷CAS2: Các tín hiệu nối tầng (là đầu ra đối với vi mạch chủ và là đầu vào đối với vi mạch

thợ).+ -SP/-EN (Slave Program, Enable Buffer): Tín hiệu lập trình chủ tớ hoặc mở đệm bus dữ liệu.-SP/-EN=0: PIC làm việc ở chế độ thợ và mở thông bus hệ thống (chế độ đệm bus)-SP/-EN=1: PIC làm việc ở chế độ chủCấu trúc bên trong của PIC 8259 (hình dưới):

58

Page 59: Giáo trình kiến trúc máy tính ICTU

- Các khối chức năng:+ Thanh ghi yêu cầu ngắt IRR (Interrupt Request Register): là thanh ghi 8 bít. IRR chức

(ghi nhận) tất cả các yêu cầu ngắt IRQ i đòi phục vụ. Nếu tín hiệu IRQi = "1" thì bit IRRi tương ứng được đặt bằng "1".

+ Bộ giải quyết ưu tiên RR (Priority Resolver): là thanh 8 bit. PR xác định mức ưu tiên của các yêu cầu ngắt. Ngắt có ưu tiên cao nhất được chọn và đặt vào bit tương ứng trong ISR trong chu kỳ INTA.

+ Thanh ghi ngắt đang được phục vụ ISR (In Service Register): là thanh ghi 8 bít. ISR ghi nhạn các ngắt đang được phục vụ. Yêu cầu ngắt IRQ i nào đang được phục vụ thì bit ISRi

tương ứng được đặt bằng "1". + Khối logic điềukhiển: khối logic điều khiển đưa ra tín hiệu INT, được nối thẳng với

chân INT của CPU. Khi INT có mức cao đòi CPU phục vụ ngắt. Khối logic điều khiển nhận tín hiệu INTA từ CPU. Khi nhận được tín hiệu INTA, PIC 8259 sẽ cung cấp số ngắt ra BUS dữ liệu cho CPU.

+ Khối đệm Bus: là loại 8 bít, 2 hướng, 3 trạng thái. Các từ điều khiển ICW, OCW được đưa vào PIC 8259 qua khối này để xác lập chế độ hoạt động của 8259. Số ngắt và trạng thái hoạt động của PIC cũng được đưa ra BUS dữ liệu qua khối này.

+ Khối ghép tầng PIC 8259 có cơ cấu cho phép nối ghép tầng các PIC 8259 với nhau và phối

hợp hoạt động của các PIC này. Tầng thứ nhât có đầu ra INT nối trực tiếp với CPU, gọi là PIC 8259 - chủ. Đầu vào IRQ i của PIC chủ được nối với đầu ra INT của PIC 8259 thứ hai. PIC này được gọi là PIC 8259 - thợ. Cơ chế ghép tầng cho phép xây dựng một hệ thống ngắt cứng quản lý được đến 64 yêu cầu ngắt IRQ.

+ Khối logic ghi/đọc và giải mã: Xác lập và thực hiện giải mã các từ điều khiển ICW (Initialization Command Word - Từ điều khiển khởi động) và OCW (Operation Command Word - Từ điều khiển hoạt động). Qua hai loại từ điều khiển này người sử dụng có thể lập trình xác lậm chế độ hoạt động cho PIC.

+ Thanh ghi IMR: là thanh ghi 8 bit, cho phép đặt/xoá mặt nạ ngắt.

59

Page 60: Giáo trình kiến trúc máy tính ICTU

+ Bảng các tín hiệu CS, A0, RD, WR, và cách ghi/đọc PIC 8259:

Cơ chế hoạt động của hệ thống ngắt cứng: Điều kiện ban đầu: PIC 8259 cần được lập trình khởi động qua các từ điều

khiển ICW. Sau khi các từ điều khiển ICW được nạp thì PIC 8259 sẵn sàng hoạt động.

- Một hoặc nhiều thiết bị vào - ra có yêu cầu được phục vụ phát tín hiệu IRQi = "1" (mức tích cực) cho PIC. PIC ghi nhận các yêu cầu ngắt IRQi này bằng cách đặt các bit IRRi tương ứng lên "1".

- PIC 8259 chọn IRQi có mức ưu tiên cao nhất để phục vụ. PIC gửi tín hiệu INT cho CPU, đòi CPU phục vụ.

- CPU thực hiện các thao tác sau: + Thực hiện nốt lệnh của quá trình hiện hành. + Lưu địa chỉ trở về (nội dung của các thanh ghi CS, IP) và thanh ghi cờ FLAGS vào

ngăn xếp. + Gửi hai tín hiệu trả lời ngắt INTA cho PIC.

- Khi PIC 8259 nhận được tín hiệu INTA thứ 1: bit ISR i ứng với IRQi có mức ưu tiên cao nhất được thiết lập (ISR i = 1) và bit IRRi tương ứng bị xoá (IRRi=0). Trong chu kỳ INTA thứ nhất này PIC 8259 không gửi gì cho CPU qua BUS dữ liệu.

- Khi PIC 8259 nhận được tín hiệu INTA thứ 2: PIC 8259 gửi số ngắt tương ứng với IRQi đang được phục vụ qua BUS dữ liệu cho CPU.

- CPU nhận số ngắt và trên cơ sở số ngắt này vào vị trí tương ứng trong Bảng véctơ ngắt để xác định địa chỉ của chương trình phục vụ ngắt. CPU nạp địa chỉ chương trình phục vụ ngắt vào các thanh ghi CS và IP và bắt đầu thực hiện chương trình phục vụ ngắt này.

- Khi thực hiện xong chương trình phục vụ ngắt (khi CPU thực hiện lệnh IRET) thì quá trình phục vụ ngắt của CPU cũng kết thúc. CPU khôi phục địa chỉ trở về vào các thanh ghi CS, IP, khôi phục nội dung thanh ghi FLAGS và tiếp tục thực hiện quá trình vừa bị ngắt.

Hệ thống ngắt cứng có thể kết thúc phục vụ ngắt hiện thời theo hai chế độ: + Kết thúc ngắt bình thường EOI (End Of Interrupt): khi PIC được đặt chế

độ kết thúc ngắt bình thường EOI thì CPU phải phát lệnh báo kết thúc ngắt EOI (qua từ điều khiển OCW2) cho PIC trước khi rời khỏi chương trình con phục vụ ngắt. Khi đó bit ISRi của ngắt đang được phục vụ sẽ được đặt xuống 0.

+ Kết thúc ngắt tự động AEOI (Automatic EOI): khi PIC được đặt chế độ

60

Page 61: Giáo trình kiến trúc máy tính ICTU

kết thúc ngắt tự động AEOI thì tại chu kỳ INTA thứ 2 bit ISR i của ngắt đang được phục vụ sẽ được đặt xuống 0.

Bằng cách nói trên hệ thống ngắt cứng có thể tiếp tục phục vụ yêu cầu ngắt này ở những lầ tiếp theo.

Lập trình khởi động PIC 8259 và các từ điều khiển khởi động ICWCần xác lập chế độ làm việc của PIC 8259 trước khi sử dụng. Quá trình này được gọi

là lập trình khởi động thiết bị. Việc lập trình khởi động PIC 8259 được thực hiện qua các từ điều khiển ICW và theo lưu đồ sau:

- ICW1

Các bit D5 - D7 không dùng cho CPU x86. + IC4 (bit D): Cho biết có cần ICW4?

IC4 = 0: không cần ICW4. IC4 = 1: có ICW4.

+ SNGL (bit D1): cho biết hệ thống ngắt chỉ có một PIC hay có nhiều PIC ghép tầng. SNGL = 0 có ghép tầng. SNGL = 1 chỉ có một PIC 8259

+ ADI (bit D2): không dùng cho hệ CPU x86. + LTIM: xác định dạng tín hiệu IRQ. LTIM = 1 IRQ phải là tín hiệu mức TTL. LTIM=0 IRQ phải là tín hiệu dạng sườn xung

+ D4 = 1 + D5 = D6 = D7 = 0 - ICW2

61

Page 62: Giáo trình kiến trúc máy tính ICTU

ICW2 định nghĩa số ngắt nền cho 7 số ngắt còn lại.

Các bit T7 - T3 là 5 bit cao của số ngắt, 3 bít còn lại liên quan đến các đầu vào IRQi. Năm bit cao T7 - T3 (do người sử dụng tuỳ chọn) cùng với 3 bit thấp nhất bằng 0 xác định

số ngắt nền. Dựa trên số ngắt nền ứng với IRQ0 này. PIC 8259 tự tạo ra các số ngắt tiếp theo tương ứng với các IRQ1 đến IRQ7.

Ví dụ: ở hệ thống ngắt cứng của máy vi tính PC, các số ngắt do PIC 8259 chủ cung cấp như sau:

ICW3: liên quan đến ghép tầng Mạch phần cứng có chân SP/EN xác định chủ/thợ ở chế độ ghép tầng: nếu SP = 1 thì PIC là

chủ, nếu SP = 0 thì PIC là thợ. Có hai loại ICW3 - ICW3 cho PIC chủ: xác định đầu vào IRQi nhận tín hiệu INT từ PIC thợ thứ i.

Nếu Si=1 báo có PIC thợ nối vào chân IRQi của chủ.- ICW3 cho PIC thợ: Xác định địa chỉ (chỉ thị nhận dạng) của PIC thợ

Các bit ID2, ID1, ID0 xác định địa chỉ riêng của các PIC 8259 - thợ. Khi nhận được tín hiệu INTA2, PIC 8259 - thợ so sánh các tín hiệu CAS0 - CAS2 (phát từ PIC 8259 - chủ) với ID2 - ID0, nếu chúng giống nhau thì PIC 8259 - thợ gửi số ngắt lên BUS dữ liệu cho CPU, người lại thì không gửi.

ICW4:

+ bit µP: báo cáo cho PIC 8259 biết phải làm việc với họ vi xử lý nào. µP = 1: làm việc với họ x86 µP = 0: làm việc với họ 8085 + bit AEOI: xác lập chế độ kết thúc ngắt. AEOI = 0: kết thúc bình thường EOI AEOI = 1: kết thúc tự động AEOI

62

Page 63: Giáo trình kiến trúc máy tính ICTU

+ bit BUFF: báo chế độ có bộ đệm BUS BUFF = 1: PIC làm việc ở chế độ đệm bus, lúc này tín hiệu SP/EN ở chế độ ra và việc

định nghĩa chủ/thợ được xác định bằng bit M/S. + bit M/S: xác định chủ thợ M/S = 1: PIC là chủ M/S = 0: PIC là thợ Nếu BUFF = 0 thì M/S không có ý nghĩa + Bit SFNM: bit này được đặt bằng 0 ngay khi khởi động hệ thống. Kiểu ưu tiên cố định

là mặc định, trong đó IRQ0 có mức ưu tiên cao nhất, IRQ7 có mức ưu tiên thấp nhất. Có thể thay đổi kiểu ưu tiên bằng từ điều khiển OCW2. Trong kiểu ưu tiên cố định, khi SFNM = 0, khi bit ISRi = 1 tất cả các IRQi có mức ưu tiên thấp hơn đều bị cấm. Chỉ có các IRQi có mức ưu tiên cao hơn được phép gây ngắt chương trình phục vụ ngắt hiện thời.

Các từ điều khiển hoạt động OCW Các từ điều khiển OCW được dùng để xác lập các chế độ làm việc cụ thể trong quá trình

hoạt động của PIC 8259. Có thể gửi các từ OCW này cho PIC3259 vào bất kỳ lúc nào sau khi khởi động hệ thống ngắt.

+ OCW1: cho phép hoặc cấm nhận một yêu cầu ngắt IRQi nào đó bằng mặt nạ ngắt. Với PIC chủ : địa chỉ thanh ghi chứa OCW1 là 21H.Với PIC thợ : địa chỉ thanh ghi chứa OCW1 là A1H

Mỗi bit Mi tương ứng với IRQi

Khi Mi = 1 mặt nạ ngắt được đặt, cấm PIC nhận IRQi (gây ngắt) Khi Mi = 0 mặt nạ ngắt được xoá, cho phép PIC nhận IRQi (cho phép IRQi gây ngắt. Hệ điều hành đặt mặt nạ che chắn các IRQ mà hệ thống chưa dùng đến. + OCW2: dùng để đổi kiểu ưu tiên và báo kết thúc ngắt EOI.Địa chỉ thanh ghi chứa OCW2 : 20h (PIC chủ), AOh (PIC thợ) PIC cho phép chọn một trong ba chế độ ưu tiên:Ưu tiên cố định IRQo có mức ưu tiên cao nhất, IRQ7 có mức ưu tiên thấp nhất. Trong

chế độ này IRQ mức cao có quyền ngắt chương trình phục vụ ngắt có mức ưu tiên thấp hơn. Ưu tiên quay vòng: IRQi nào vừa được phục vụ thì bit ISRi sẽ bị xoá xuống 0 và tự động có

mức ưu tiên thấp nhất. Điều này thực tế đã tạo ra các mức ưu tiên bằng nhau. Ưu tiên đặc biệt: người lập trình có thể thay đổi mức ưu tiên bằng chương trình. Nếu các

bit trong OCW2 R = 1, SL = 1 thì các bít L2-L0 sẽ đặt IRQ n xuống mức thấp nhất và IRQn+1

lên mức cao nhất.

63

Page 64: Giáo trình kiến trúc máy tính ICTU

OCW3: Cho phép đặt/đọc ISR và các thanh ghi khác của PIC 8259

- ESMM = 1 và SMM cho phép đặt/xoá chế độ mặt nạ đặc biệt. Chế độ mặt nạ đặc biệt này chỉ cấm một IRQ và cho phép tất cả các IRQ còn lại được yêu cầu ngắt.

- D4 = 0, D3 = 1 - Bit P : cho phép PIC 8259 làm việc với CPU ở chế độ hỏi đáp, không cần qua các tín

hiệu INT, INTA. Nếu P = 1 thì PIC coi tín hiệu điều khiển đọc RD như là tín hiệu INTA. - Các bit RR và RIS: RR = 1 & RIS = 0 : báo sẽ đọc IRR ở lệnh đọc tiếp sau.RR = 1 & RIS = 1 : báo sẽ đọc IRR ở lệnh đọc tiếp sau.- Phân bố chức năng các yêu cầu ngắt và số ngắt trong máy PC PIC 8259 - chủ: PIC 8259 - chủ chiếm hai địa chỉ cổng : 20h, 21h

PIC 8259 - thợPIC 8259 - thợ chiếm hai địa chỉ cổng: A0h, A1h

64

Page 65: Giáo trình kiến trúc máy tính ICTU

4.1.2- Truy nhập trực tiếp bộ nhớ và bộ điều khiển DMAC 8237 - Khái niệm cơ bản Quá trình chuyển dữ liệu trực tiếp giữa thiết bị ngoại vi và bộ nhớ chính không qua CPU

được gọi là quá trình DMA (Direct Memory Access). Trong quá trình DMA, việc chuyển dữ liệu không được điều khiển bằng chương trình mà

được điều khiển bằng một thiết bị đặc biệt gọi là bộ điều khiển DMAC (DMA Controller). Cấu trúc hệ thống vào - ra dữ liệu kiểu DMA như sau (hình sau):

- Sơ đồ khối mạch DMAC 8237

65

Page 66: Giáo trình kiến trúc máy tính ICTU

- DRQ0 - DRQ3 (tín hiệu vào): tín hiệu yêu cầu DMA. bốn dây DRQ nối với 4 thiết bị cần phục vụ kiểu DMA. Khi thiết bị ngoại vi đưa tín hiệu DRQ lên mức tích cực thì quá trình DMA bắt đầu.

DRQ0 có mức ưu tiên cao nhất, DRQ3 có mức ưu tiên thấp nhất. - DACK0-DACK3 (tín hiệu ra): tín hiệu trả lời DMA, DACK được nối vào từng thiết bị

ngoài để báo cho thiết bị ngoài biết là DMAC đang phục vụ nó. - HOLD (tín hiệu ra): dùng để báo cáo CPU là DMAC đòi quyền điều khiển BUS. - HLDA (tín hiệu vào): Tín hiệu HLDA được gửi từ CPU báo cho DMAC biết là quyền

điều khiển bus thuộc về DMAC. - A0-A3 (tín hiệu vào/ra): 4 dây địa chỉ thấp. Trong chu kỳ nghỉ được dùng để xác

định địa chỉ các thanh ghi trong DMAC khi lập trình hoạt động cho DMAC. Trong chu kỳ tích cực được dùng để cung cấp 4 bit địa chỉ A0-A3 cho BUS địa chỉ.

- A4-A7 (tín hiệu vào/ra): cung cấp 4 bit địa chỉ cao cho bus địa chỉ trong quá trình DMA. - DB0 - DB7 (tín hiệu vào/ra): là BUS 8 bít đa năng. Trong chu kỳ nghỉ: là BUS 8 bit dữ liệu vào truyền dữ liệu xác lập chế độ làm việc cho

DMAC và cũng là BUS 8 bit dữ liệu ra trong quá trình CPU đọc trạng thái DMAC. Trong chu kỳ tích cực (chu kỳ DMA): truyền hai loại thông tin trong hai thời khoảng: + Thời khoảng đầu: với sự có mặt của tín hiệu ADSTB thì DB0-DB7 là BUS 8 bit địa

chỉ cao nhất (A15-A8), 8 bit địa chỉ này cần được chốt lại để kết hợp với 8 bit địa chỉ thấp (A7-A0) thành địa chỉ 16 bit.

+ Thời khoảng sau: là BUS 8 bit dữ liệu, dành cho truyền dữ liệu trong chế độ DMA. - MR (tín hiệu ra): là tín hiệu điều khiển đọc bộ nhớ trong chế độ DMA.

66

DB0-DB7(A8-A15)

A0-

A4-A7 Đệm ra

Đệmvào/ra

Đệmvào/ra

Page 67: Giáo trình kiến trúc máy tính ICTU

- MW(tín hiệu ra): là tín hiệu điều khiển ghi bộ nhớ trong chế độ DMA. - ADSTB (tín hiệu ra): dùng để điều khiển việc chốt (ghi lại) 8 bit địa chỉ

cao (A8-A15). - AEN : (tín hiệu ra) cho phép/cấm thiết bị chốt địa chỉ hoạt động. AEN cũng được dùng

để cấm các thiết bị điều khiển BUS khác trong chế độ DMA. - EOP (tín hiệu vào/ra): khi là tín hiệu vào, tín hiệu EOP buộc DMAC kết

thúc quá trình DMA. Là tín hiệu ra trong chế độ hoạt động, tín hiệu EOP do DMAC phát ra báo đã truyền đủ số byte xác định bởi TC.

- IOW (tín hiệu vào/ra): trong chế độ nghỉ là tín hiệu vào, tín hiệu này do CPU cung cấp để điều khiển ghi dữ liệu vào DMAC. Trong chu kỳ tích cực là tín hiệu ra. DMAC tạo tín hiệu điều khiển ghi thiết bị ngoài vi.

- Các chế độ hoạt động của DMAC 8237 DMAC 8237 hoạt động trong 2 chu kỳ chính là: chu kỳ nghỉ và chu kỳ hoạt động. + Chu kỳ nghỉ: khi không có kênh nào yêu cầu thì DMAC đi vào chu kỳ

nghỉ. Trong chu kỳ này DMAC "quan sát" các dây DRQ ở từng nhịp đồng hồ, đồng thời làm việc với CPU. Trong chu kỳ nghỉ của DMAC thì CPU có thể xác lập, thay đổi hoặc kiểm tra nội dung các thanh ghi chế độ làm việc của DMAC. Khi có tín hiệu DRQ tích cực, DMAC gửi ra tín hiệu HOLD và đi vào chu kỳ hoạt động.

+ Chu kỳ hoạt động: trong chu kỳ hoạt động DMAC 8237 có thể hoạt động theo một trong 4 kiểu, tuỳ theo lập trình:

- - Kiểu truyền đơn lẻ (single transfer mode): trong kiểu truyền này, DMAC được lập trình để thực hiện chỉ một lần truyền. Thanh đếm từ TC tự động giảm, địa chỉ tăng hoặc giảm cho đến khi TC = 0. Trong kiểu truyền này DRQ phải được giữ ở mức tích cực chừng nào DACK tích cực còn được ghi nhận. Nếu DRQ còn giữ ở mức tích cực quá một lần truyền thì HOLD bị đặt xuống 0 và DMAC trả quyền điều khiển bus cho CPU.

-- Kiểu truyền khối (block transfer mode): trong kiểu truyền khối DMAC bắt đầu thực hiện việc truyền cả khối dữ liệu khi DRQ tích cực và tiếp tục truyền cho đến khi thanh đếm TC đếm xuống 0 hoặc cho đến khi nhận được tín hiệu EOP từ bên ngoài. Tín hiệu DRQ chỉ cần được giữ tích cực cho đến khi DACK trở thành tích cực.

-- Kiểu truyền theo yêu cầu (demand transfer mode): trong kiểu truyền này, dữ liệu được truyền cho đến khi DRQ không tích cực hoặc TC = 0 hoặc nhận được tín hiệu EOP. Việc truyền dữ liệu trực tiếp cho đến khi thiết bị bên ngoài chuyển được hết dữ liệu của nó. Nếu thiết bị chuẩn bị dữ liệu chậm hơn, nó đặt DRQ thành không tích cực. Khi thiết bị chuẩn bị xong thì nó đặt DRQ lên thành tích cực và quá trình DMA lại tiếp tục.

- Kiểu ghép tầng (Cascade mode)

67

Page 68: Giáo trình kiến trúc máy tính ICTU

Trong kiểu ghép tầng: dây HOLD của DMAC tầng 2 nối với dây DRQ của DMAC tầng 1. Dây DACK của DMAC tầng 1 nối với các dây HLDA của DMAC tầng 2.

Yêu cầu DRQ của DMAC tầng 2 được truyền qua mạch phân định ưu tiên của DMAC tầng 1. Trong trường hợp kênh có nối tầng, DMAC tầng 1 chỉ thực hiện chức năng phân định ưu tiên và không đưa ra các tín hiệu điều khiển BUS của riêng nó.

Các thanh ghi của DMAC Mỗi kênh DMA có 4 thanh ghi chức năng. - Thanh ghi địa chỉ nền (16 bit): lưu giữ địa chỉ nền (địa chỉ đầu) của vùng nhớ cần truy

cập. - Thanh ghi đếm nền (16 bít): lưu giữ con số xác định lượng từ dữ liệu gốc cần truyền. - Thanh ghi địa chỉ hiện thời (16 bit): Thanh ghi này chứa giá trị địa chỉ của ô nhớ đang

được truy nhập trong quá trình DMA. Địa chỉ tự động tăng hoặc giảm sau mõi lần truyền và giá trị tức thời này lập tức được nạp vào đây. Thanh ghi này được ghi/đọc bởi CPU.

- Thanh ghi đếm từ hiện thời (16 bit): thanh ghi này giữ số lần truyền được thực hiện. Số đếm này giảm sau mỗi lần truyền. Khi giá trị của thanh ghi đếm từ hiện thời giảm xuống 0 thì tín hiêu EOP được tạo ra. Thanh ghi này được ghi/đọc bởi CPU.

Các thanh ghi điều khiển và trạng thái: + Thanh ghi lệnh (Command Register)Thanh ghi lệnh (8 bit) này được nạp để xác lập chế độ làm việc cho DMAC: cho

phép hoạt động, kiểu ưu tiên, kiểu tốc độ truy nhập, dạng tín hiệu DRQ và DACK.

+ Thanh ghi yêu cầu (request register)

68

Page 69: Giáo trình kiến trúc máy tính ICTU

Thanh ghi yêu cầu (8bit): Cho phép DMAC có thể trả lời DACK cho từng thiết bị yêu cầu và đặt/xóa yêu cầu DRQ.

+ Thanh ghi kiểu làm việc (8bit): Xác lập chế độ và kiểu làm việc cho từng kênh DMA, cho phép chọn: Kênh, kiểu truyền, thực hiện DMA để ghi hay đọc, kiểu tăng/giảm địa chỉ, cấm/cho phép tự khởi đầu lại.

+ Thanh ghi mặt nạ:Thanh ghi mặt nạ (8bit): thanh ghi này cho phép đặt/xóa mặt nạ (nhận/không nhận DRQ) đến mức

từng kênh.

+ Thanh ghi trạng thái: Thanh ghi trạng thái (8bit) cho biết trạng thái DRQ và TC của từng kênh

69

Page 70: Giáo trình kiến trúc máy tính ICTU

Lập trình chế độ làm việc DMAC 8237:Địa chỉ nền của DMAC 8237#1: 000hĐịa chỉ nền của DMAC 8237#2:0C0h+ Lập trình các thanh ghi điều khiển

+ Lập trình các thanh ghi địa chỉ và đếm

70

Page 71: Giáo trình kiến trúc máy tính ICTU

Trình tự lập trình khởi động DMAC + Nạp byte thấp cho thanh ghi địa chỉ nền + Nạp byte cao cho thanh ghi địa chỉ nền + Nạp byte thấp cho thanh ghi đếm + Nạp byte cao cho thanh ghi đếm + Nạp thanh ghi lệnh, thanh ghi yêu cầu và thanh ghi kiểu làm việc. + Nạp thanh ghi địa chỉ trang + Xoá mặt nạ kênh cần dùng + Cho phép kênh hoạt động. - Quá trình DMA DMAC được xác lập chế độ làm việc: các thanh ghi lệnh, thanh ghi kiểu làm việc, thanh

ghi địa chỉ nền và thanh đếm kích thước khối dữ liệu được nạp, cho phép kênh làm việc. - Thiết bị vào-ra phát tín hiệu DRQ cho DMAC. - DMAC phát tín hiệu HOLD = 1 cho CPU, đòi CPU đi vào chế độ DMA.- CPU thực hiện nốt chu kỳ máy. - CPU phát tín hiệu HLDA cho DMAC và tách ra khỏi hệ thống BUS. Quyền điều khiển

BUS thuộc về DMAC. - DMAC làm chủ các BUS địa chỉ, BUS số liệu và BUS điều khiển.

DMAC tạo ra tín hiệu DACK, phát ra địa chỉ bộ nhớ (16 bit), tạo tín hiệu điều khiển ghi/đọc thiết bị vào/ra, tín hiệu điều khiển ghi/đọc bộ nhớ và một byte dữ liệu được truyền trực tiếp giữa bộ nhớ và tiết bị vào-ra. Địa chỉ ô nhớ tiếp theo được phát ra và quá trình trên lặp lại cho đến khi thực hiện xong quá tình DMA theo kiểu đã được lập trình (TC = 0).

- Khi quá trình DMA kết thúc DMAC phát tín hiệu HOLD = 0 cho CPU và trả quyền điều khiển hệ thống BUS cho CPU. Quá trình DMA cũng có thể được kết thúc từ bên ngoài bằng tín hiệu EOP.

- CPU nắm lại quyền điều khiển hệ thống BUS và tiếp tục làm việc bình thường.

71

Page 72: Giáo trình kiến trúc máy tính ICTU

- Mạch DMA trong máy vi tính CP/AT

Có 8 kênh DMA. - Địa chỉ cổng DMAC 8237 # 1 : 000h - 01Fh Địa chỉ nền của các thanh ghi DMAC 8237 # 1 là 000h DMAC # 1 có 4 kênh:Kênh 0 : DRQ0, làm tươi bộ nhớ Kênh 1 : DRQ1, tuỳ chọn Kênh 2 : DRQ2, dành cho đĩa mềmKênh 3 : DRQ3, tuỳ chọn - Địa chỉ cổng DMAC 8237 #2 : 0C0h - 0DFh Địa chỉ nền của các thanh ghi DMAC 8237 #2 là: 0C0h DMAC #2 có 4 kênh DMA: Kênh 0 : DRQ4, nối tầng với DMAC 8237 #1 Kênh 1 : DRQ5, tuỳ chọn Kênh 2 : DRQ6, tuỳ chọnKênh 3 : DRQ7, tuỳ chọn

- Thanh ghi trang và địa chỉ trang DMAC chỉ tạo được địa chỉ 16 bít nên chỉ cho phép truy nhập được vùng nhớ 64 Kbyte.

Để thực hiện quá trình DMA với loại bộ nhớ có bus địa chỉ 24 bit ở máy PC người ta tổ chức quản lý bộ nhớ theo trang.

Người ta thiết kế các thanh ghi trang chứa 8 bit cao của địa chỉ 24 bit, kết hợp với một mạch điện tử (74LS612) để tạo các địa chỉ vật lý 24 bit trong quá trình DMA.

Hệ thống DMA trong máy vi tính PC có 4 thanh ghi trang ứng với 4 kệnh DMAC.

72

Page 73: Giáo trình kiến trúc máy tính ICTU

Các thanh ghi trang chứa địa chỉ đầu của các vùng nhớ, mỗi một vùng nhớ được dùng làm vùng nhớ đệm phục vụ quá trình DMA.

4.1.3 Vào-ra nối tiếp và thiết bị giao diện vào-ra nối tiếp UART 8250/16450 Các máy tính tương thích IBM đều được trang bị 2 cổng nối tiếp (COM1, COM2) và các

cổng này được thiết kết hoạt động theo tiêu chuẩn RS232.Vào/ra nối tiếp là phương pháp kết nối và truyền dữ liệu giữa máy tính và thiết bị ngoại vi

trong đó mã chứa thông tin được truyền theo từng bít, bít nọ sau bít kia (truyền tin nối tiếp). #Truyền tin nối tiếp có 2 dạng:+ Truyền đồng bộ: Ngoài tín hiệu số phải thêm vào tín hiệu nhịp đồng hồ làm chuẩn. Ưu điểm

của phương pháp này là tần số truyền có giá trị bất kỳ và tốc độ truyền chỉ phụ thuộc vào dải tần mà cáp dẫn và bộ điều khiển cho phép.

+ Truyền không đồng bộ: Truyền với tốc độ xác định. Thiết bị nhận và thiết bị phát đều phải làm việc trong cùng 1 tần số. Dữ liệu được đồng bộ từng byte trong 1 khung dữ liệu nằm giữa bit khởi đầu (start bit, 1) và bit kết thúc (stop bit,0).

Tốc độ truyền được tính theo baund: Số baund là số lần thay đổi tín hiệu trong 1 giây. Đối với giao diện song song đơn giản thì số baund bằng số bit được truyền đi trong 1 giây.

Quá trình thu phát thông tin nối tiếp qua cổng COM do vi mạch thu phát không đồng bộ vạn năng UART (Universal Asychronous Receiver and Transmitter) đảm nhiệm. Vi mạch này được thiết kế hoạt động tuân theo tiêu chuẩn RS232 dùng để:

+ Biến đổi các dữ liệu song song trong máy tính thành dòng bit nối tiếp ra cổng COM.+ Biến đổi các bit dữ liệu nối tiếp từ cổng COM thành các từ dữ liệu song song trong máy tính.- Chuẩn truyền tin RS-232 Chuẩn truyền tin RS-232 quy định về phương pháp kết nối và giao diện giữa DTE và

DCE (h.55). DTE (Data Terminal Equipment) thiết bị đầu cuối dữ liệu: là thiết bị phát hoặc nhận dữ

liệu DCE (Data Circuit - terminating Equipment) : thiết bị truyền dữ liệu.

Chuẩn RS232 quy định về: - Kết nối vật lý: loại đầu nối, số lượng, vị trí và chức năng truyền thông tin của mỗi chân

trong đầu nối. - Mức điện áp tín hiệu. - Tốc độ truyền

73

Page 74: Giáo trình kiến trúc máy tính ICTU

+ Kết nối vật lý: sử dụng hai loại đầu nối 9 chân hoặc 25 chân: DB9 và DB25. Kết nối DTE & DCE qua đầu nối DB25 (hình dưới):

Kết nối DTE & DCE qua đầu nối DB9 (hình dưới):

Ý nghĩa của các tín hiệu, nhìn từ phía DTE - Các tín hiệu mang dữ liệu TxD: tín hiệu dữ liệu phát RxD: tín hiệu dữ liệu nhận - Các tín hiệu bắt tay (khi các tín hiệu có mức tích cực). Từ DTE (từ cổng COM máy vi tính) DTR : DTE báo sẵn sàng làm việc RTS : DTE báo có dữ liệu muốn gửi Đến DTE (vào máy tính) DSR : DCE báo sẵn sàng làm việc CTS : DCE sẵn sàng nhận dữ liệu để gửi đi CD : DCE báo phát hiện được sóng mang của phía bên kia

RI : DCE báo nhận được tín hiệu rung chuông + Mức tín hiệu: +/- 25V "0" : +3V đến +25V"1" : -3V đến -25V + Kích thước cáp nối không quá 20m.

74

Page 75: Giáo trình kiến trúc máy tính ICTU

+ Tốc độ truyền: hai bên phát và nhận phải có tốc độ bằng nhau: từ 50 bit/s đến 20000bit/s.

Phương pháp truyền DTE truyền dữ liệu không đồng bộ về pha nhưng đồng bộ trên từng byte dữ liệu bằng bít

"START". Dữ liệu khi được truyền có khuôn dạng sau:

Khuôn dạng dữ liệu giữa bên phát và bên nhận phải được chọn giống nhau.

Cấu trúc bố trí chân thực tế của DB9 và DB 25 như sau : Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân). Ý nghĩa của các

chân được mô tả như sau:

- Thiết bị giao diện vào/ra nối tiếp UART 8250/16450

75

Page 76: Giáo trình kiến trúc máy tính ICTU

Thiết bị giao diện vào/ra nối tiếp UART 8250/16450 thực hiện hai chức năng chính. + Chuyển 1 byte dữ liệu (nhận từ CPU) dạng 8 bits song song thành dạng nói tiếp, tạo

khung dữ liệu dạng nối tiếp và phát đi tuần tự từng bit cho đến hết byte dữ liệu. + Nhận 1 khung dữ liệu dạng nối tiếp, loại bỏ các bít tạo khung (bit START, PARITY,

STOP), chuyển thành dạng dữ liệu song song. + Tạo và nhận các tín hiệu bắt tay theo chuẩn RS232. Sơ đồ khối cổng vào-ra nối tiếp trong máy vi tính PC (hình dưới).

Tại sao lại cần Bộ điều hợp EIA? Vì: Mức tín hiệu theo chuẩn RS 232 là:+ Logic 0: +3V -> +25V+ Logic 1: -3V ->-25VMọi tín hiệu giữa -3V->+3V đều không có ý nghĩa. Vì tín hiệu bên trong máy tính chỉ có điện

thế từ 0V->5V (TTL) hay thấp hơn nên tín hiệu từ máy tính ra giao diện RS 232 và ngược lại phải qua bộ chuyển mức tín hiệu. Vi mạch MAX 232 (Bộ điều hợp EIA) là một bộ chuyển mức tín hiệu hay được dùng nhất. Vi mạch này chỉ cần nguồn nuôi 5V. Bộ bơm điện tích bên trong vi mạch có khả năng tạo tín hiệu +10V và -10V từ 5V. Vi mạch này có 2 bộ chuyển mức tín hiệu cho mỗi chiều.

+ CS (CS0,CS1,-CS2): Tín hiệu chọn UART nối với bus điều khiển của máy tính.+ A2 – A0: 3 tín hiệu chọn địa chỉ hoặc thanh ghi, xác định thanh ghi nào CPU đang thâm

nhập cho đọc hoặc viết.+ -RD: Tín hiệu đọc dữ liệu từ UART+ -WD: tín hiệu ghi dữ liệu vào UART+ D7-D0: Nối với bus dữ liệu của máy tính+ INT: Tín hiệu yêu cầu ngắt ( Đưa yêu cầu ngắt về bộ vi xử lý)+ OUT: OUT1: Cho người sử dụng

OUT2: Dùng làm tín hiệu cho phép ngắt chính qua cổng logic- UART8250 có 10 thanh ghi điều khiển và trạng thái. Các thanh ghi có địa chỉ liên tiếp

nhau và có thể được thâm nhập bằng 3 bit địa chỉ. Địa chỉ cơ sở của UART và cũng là của các thanh ghi được lưu trữ ở vùng số liệu của BIOS. Thường tìm các địa chỉ cơ sở và ngắt IRQ như sau:

Cổng Địa chỉ cơ sở Yêu cầu ngắt

76

Page 77: Giáo trình kiến trúc máy tính ICTU

COM1 3F8H IRQ4COM2 2F8H IRQ3

- Nội dung các thanh ghi trong UART như sau:Địa chỉ nền của hai thiết bị giao diện vào-ra nối tiếp:Thiết bị UART#1 (COM1) : 3F8hThiết bị UART#2 (COM2) : 2F8hThanh ghi dữ liệu phát THR THR là nơi chứa dữ liệu (hoặc ký tự) cần phát đi Địa chỉ: Địa chỉ nền +0, ghi, DLAB = 0

D7 D0Bit D0 là bit thấp nhất, được phát hiện đầu tiênThanh ghi dữ liệu nhận RBR: RBR là nơi chứa dữ liệu (hoặc ký tự) nhận được. Địa chỉ: Địa chỉ nền +0, đọc, DLAB = 0

D7 D0DLAB là bit D7 của thanh ghi LCR# DLAB: bit thâm nhập chốt bộ chiaThanh ghi điều khiển đường truyền LCR Thanh ghi LCR xác định khuôn dạng dữ liệu phát/ nhận và cho phép truy nhập vào các

thanh ghi THR, RBR, IER hoặc BRG. Địa chỉ: Địa chỉ nền +3, ghi

D7 D0D1 và D0: Xác định kích thước dữ liệu truyền

D2- xác định số lượng bit stop được tạo và kiểm traD2 = 0 1 Bit StopD2 = 1 2 Bit StopD3- cho phép tạo hoặc kiểm tra pariyD3 = 0 không cho phépD3 = 1 cho phépD4 - chọn kiểu parity D4 = 0 số lượng lẻ bít "1" được báo hoặc kiểm tra

77

Page 78: Giáo trình kiến trúc máy tính ICTU

D4 = 1 số lượng chẵn bit "1" được báo hoặc kiểm traD5 - chọn mức tích cực của bit parity: Nếu D5 = 1 và D4 = 1 thì mức tích cực của bit parity là 0 (Parity chẵn) Nếu D5 = 1 và D4 = 0 thì mức tích cực của bit parity là 1 (Parity lẻ) D6 - đặt điều khiển nghỉ (BREAK) Khi D6 = 1 thì SOUT = 0, chú ý D6 = 0! (thường đặt) D7-DLAB bit: cho phép truy nhập các thanh ghi THR, RBR, IER hoặc BRG D7 = 1 cho phép truy nhập cặp thanh ghi tốc độ truyền BRG. D7 = 0 cho phép truy nhập các thanh ghi THR, RBR và IER. Thanh ghi xác lập tốc độ truyền 16 bít BRG: BRG gồm 2 thanh ghi byte cao và byte thấp, xác định hệ số chia của tốc độ truyền. Byte thấp: Địa chỉ: Địa chỉ nền +0, ghi, DLAB = 1

D7 D0Byte cao:Địa chỉ: Địa chỉ nền +1, ghi,DLAB=1

D7 D0Nội dung thanh ghi BRG:

Thanh ghi điều khiển giao diện với Modem MCRMCR điều khiển giao diện với Modem và cho phép ngắt yêu cầu ngắt IRQ.Địa chỉ: Địa chỉ nền + 4, ghi

D7 D0D0 - DTR bit: D0 = 1 đặt DTR tích cực. D0 = 0 đặt DTR không tích cực.

78

Page 79: Giáo trình kiến trúc máy tính ICTU

D1 - RTS bit: D1 = 1 đặt RTS tích cực. D1 = 0 đặt RTS không tích cực. D2 - OUT1 bit: ảnh huởng đến đầu ra OUT1. D3 - OUT2 bit: ảnh huởng đến đầu ra OUT2.

D3 = 1 đặt OUT2 = 0, cho phép UART phát tín hiệu IRQ. D3 = 0 không cho phép UART phát tín hiệu IRQ.

D4: cho phép vào chế độ tự kiểm tra UART 8250 bằng cách nối tắt bộ các đầu TxD& RxD: DTR; RTS & CTS...

D5 = D6 = D7 = 0 Thanh ghi trạng thái đường truyền LSR: LSR cung cấp thông tin về trạng thái đường truyền tin. Địa chỉ: Địa chỉ nền +5, đọc

D7 D0D0 - RBR bit:

D0 = 1 báo UART nhận được 1 byte dữ liệu và đã đặt vào thanh ghi RBR. (báo RBR đầy).

D1 - lỗi đè: D1=1 báo RBR có dữ liệu nhận nhưng chưa được CPU đọc và bị 1 byte mới nhận

tiếp theo đè lên. D2 - Lỗi Parity

D2 = 1 báo lỗi có Parity (lỗi truyền tin). D3 - Lỗi khuôn dạng

D3 = 1 báo khuôn dạng dữ liệu bị nhận sai. D4 - Lỗi Break

D4 = 1 báo đầu nhận dữ liệu có trạng thái logic 0 dài hơn thời gian truyền 1 byte dữ liệu.

D5 - THR bit: D5 = 1 báo UART sẵn sàng nhận 1 byte dữ liệu mới từ CPU để phát đi (thanh ghi

THR rỗng). D6 - TSR bit: D6 = 1 thanh boá ghi TSR rỗng. D7 - không dùng. Thanh ghi trạng thái Modem MSR: MSR cung cấp thông tin về trạng thái các tín hiệu bắt tay từ Modem. Địa chỉ: Địa chỉ nền +6, đọc

D7 D0D0 - D3: báo có sự thay đổi trạng thái của tín hiệu bắt tay từ modem. D4 - CTS bit:

D4 = 1 báo hiệu CTS có mức tích cực.

79

Page 80: Giáo trình kiến trúc máy tính ICTU

D5 - DSR bit: D5 = 1 báo hiệu DSR có mức tích cực.

D6 - RI bit: D6 = 1 báo hiệu RI có mức tích cực.

D7 – CD - bit: D7 = 1 báo hiệu CD có mức tích cực.

Thanh ghi chọn nguồn ngắt IER: IER cho phép chọn các nguồn ngắt.

Địa chỉ: Địa chỉ nền +1, ghi, DLAB = 0 D7 D0

D0 - liên quan đến báo ngắt của thanh ghi dữ liệu nhận RBR. D0 = 1 cho phép UART báo ngắt khi nó nhận được dữ liệu (khi RBR đầy)D0 = 0 không cho phép báo ngắt.

D1 - liên quan đến báo ngắt của thanh ghi phát THR. D1 = 1 cho phép UART báo ngắt khi nó sẵn sàng nhận 1 byte dữ liệu mới từ CPU để

phát đi (khi THR rỗng). D1 = 0 không cho phép.

D2- liên quan đến báo ngắt của thanh ghi LSR. D2 = 1 cho phép UART báo ngắt khi có thay đổi thông tin về trạng thái truyền tin

trong LSR. D2 = 0 không cho phép.

D3 - liên quan đến báo ngắt của thanh ghi MSR D3 = 1 cho phép UART báo ngắt khi có thay đổi thông tin về trạng thái Modem trong

MSR. D3 = 0 không cho phép báo ngắt.

D4 = D7 = 0 Thanh ghi nhận dạng nguồn ngắt IIR: Thanh ghi IIR cho phép nhận dạng nguồn gây ngắt và kiểm tra trạng thái báo ngắt. Địa chỉ: Địa chỉ nền +2, đọc

D7 D0D3 ÷ D7 = 0 D0 - trạng thái báo ngắt.

D0 = 0 còn nguồn báo ngắtD0 = 1 hết báo ngắt.

D1, D2: tổ hợp giá trị hai bit này chỉ thị nguồn đang báo ngắt

80

Page 81: Giáo trình kiến trúc máy tính ICTU

4.1.4. Thiết bị giao diện song song Thiết bị giao diện giúp kết nối giữa CPU và các thiết bị ngoại vi. Trong máy tính thì thiết bị

giao diện chính là các cổng LPT, COM, USB,..được phân thành 2 loại cổng cho phép ghép nối với thiết bị bên ngoài là cổng song song và cổng nối tiếp.

Cổng song song là cổng mà cho phép truyền số liệu đồng thời các bit của 1 từ dữ liệu trong 1 nhịp truyền. Như vậy nếu từ dữ liệu dài 8 bit thì ngoài dây chung (dây đất) ra cổng sẽ phải có 8 dây dữ liệu cho 8 bit thông tin. Trong khi đó cổng nối tiếp chỉ cho truyền lần lượt mỗi nhịp 1 bit trong từ dữ liệu và như vậy cổng chỉ cần 1 dây truyền dữ liệu nhưng lại phải cần ít nhất là 8 nhịp truyền cho 1 từ dữ liệu như ví dụ truyền 8 bit dữ liệu.

Thiết bị giao diện song song chuẩn - Thiết bị giao diện song song chuẩn (hình dưới) thực hiện chức năng giao diện giữa

CPU và các thiết bị ngoại vi (trong đó có máy in) theo kiểu song song, trong đó các bit của 1 byte dữ liệu được đưa ra hoặc nhận vào CPU trong cùng một nhịp thời gian.

- Cổng song song LPT trong máy vi tính có đầu nối loại DB 25. Nó cho phép dùng cho cả phát và nhận số liệu. Do đó có thể thiết kế các thiết bị ngoài như ổ đĩa cứng mang xách được, máy quét hình ghép nối với máy tính qua cổng này. Hiện nay thường có 1 cổng LPT được đặt ở sau máy tính cây PC.

- Sơ đồ khối cùng các tín hiệu của giao diện song song. Các thanh ghi đều được truy nhập qua 1 địa chỉ cổng cứng.

Các tín hiệu giao diện song song được chia làm 3 nhóm chính:+ Dữ liệu (8 đường vào)+ Trạng thái ( 5 đường vào)+ Điều khiển ( 4 đường ra).Những tín hiệu này được liệt kê trong bảng dưới đây

81

Page 82: Giáo trình kiến trúc máy tính ICTU

Chân Tín hiệu Ý nghĩa1 - Strobe, ra Dữ liệu được truyền ra ngoài (máy in), tín hiệu chốt dữ liệu.2-9 D0-D7 Bus dữ liệu 8bit, 2 chiều10 -ACK, vào Thiết bị ngoài đã nhận 1 byte và sẵn sàng nhận tiếp11 BUSY, vào Thiết bị không nối, thiết bị có lỗi, bộ đệm thiết bị đầy12 PE, vào Hết giấy (máy in)13 SELECT-IN, vào Thiết bị được nối với máy tính14 -Autofeed, ra Máy tin tự điều khiển xuống dòng15 -Error, vào Lỗi thiết bị16 -INIT, ra Khởi động và cài đặt thiết bị17 SELECT-OUT Chọn thiết bị18-25 GND Nối đất

Các thanh ghi:LPT có 3 loại thanh ghi: dữ liệu, điều khiển, trạng tháiĐịa chỉ nền: 378hThanh ghi dữ liệuThanh ghi dữ liệu chứa dữ liệu xuất ra hoặc dữ liệu nhập vàoĐịa chỉ: Địa chỉ nền +0, đọc/ghi

D7 D0D7-D0: Các bit của byte dữ liệuThanh ghi điều khiểnThanh ghi điều khiển chứa các bit tạo tín hiệu bắt tay với thiết bị ngoại vi. Nếu thiết bị ngoại vi là

máy in thì đây là các bit tạo tín hiệu bắt tay và điều khiển máy in.Địa chỉ: địa chỉ nền +2,ghi

D7 D0- D0: STROBE bitD0 = 1 tạo tín hiệu STROBE với mức tích cực (thấp). Tín hiệu này được dùng để chốt dữ

liệu vào thiết bị ngoại vi hoặc máy in. D1 : AUTOFEED-bit

D1 : = 1 tạo tín hiệu AUTOFEED tích cực (thấp. Với máy in : tín hiệu này điều khiển dịch một dòng in.

D2:INT-bit D2 = 0 tạo tín hiệu xung INIT mức tích cực (thấp) với độ rộng 50 micro giây.

Với máy in : tín hiệu này khởi động máy in. D3:SELECT-OUT-bit

D3=1 tạo tín hiệu SELECT-OUT tích cực (thấp). Tín hiệu SELECT-OUT được dùng để "bắt tay" với thiết bị ngoại vi hoặc chọn máy in.

D4:IRQ-bit D4-1 cho phép thiết bị giao diện song song chuẩn phát tín hiệu yêu cầu ngắt IRQ

82

Page 83: Giáo trình kiến trúc máy tính ICTU

khi nhận được tín hiệu ACK chuyển từ mức "1" sang mức "0". D5-D7: không dùng. Thanh ghi trạng thái Thanh ghi trạng thái chứa các bit thông tin phản ánh trạng thái của các tín hiệu vào (trạng

thái của thiết bị ngoại vi hoặc của máy in). Địa chỉ: địa chỉ nền + 1, đọc

D7 D0D0-D2: không dùng

D3:ERROR-bit D3=0 báo tín hiệu ERROR có mức tích cực thấp. Với máy in: báo máy in đang

trong trạng thái có lỗi.D4:SELECT-IN-bit

D4 =1 báo tín hiệu SELECT-IN tích cực (thấp). Với máy in: báo máy in đã sẵn sàng làm việc.

D5:PE-bit D5 = 1 báo máy in gặp lỗi hết giấy, mức tích cực cao.

D6:ACK-bit D6=0 báo tín hiệu xung ACK có mức tích cực thấp. Với máy in: tín hiệu xung

ACK tích cực báo máy in sẵn sàng nhận một ký tự mới. D7: BUSY-bitD7=0 báo tín hiệu BUSY có mức tích cực cao. Với máy in: báo máy in đang bận, không

thể nhận dữ liệu. D7= "1" báo máy in không bận. - Kết nối và truyền dữ liệu trực tiếp giữa hai máy tính qua cổng song songCó thể thực hiện kết nối trực tiếp và truyền dữ liệu giữa hai máy tính qua cổng song song

chuẩn theo cách sau:

4.2. Các thiết bị ngoại vi4.2.1. Bàn phím

- Cấu tạo và nguyên tắc hoạt động - Bàn phím là thiết bị ngoại vi cho phép đưa thông tin vào máy tính dưới

83

Page 84: Giáo trình kiến trúc máy tính ICTU

dạng mã ký tự. Bàn phím thực hiện các chức năng chuyển thông tin dạng lực nhấn phím và vị trí của phím được nhấn thành mã phím và chuyển cho máy tính. Bàn phím gồm hai bộ phận chính là ma trận phím và mạch điện tử quét phím.

+ Ma trận phím là tổ hợp các phím nhấn được sắp xếp theo các hàng và cột. Phím nhấn có cấu trúc cơ điện như sau:

Bình thường phím luôn ở trạng thái nhả, khi phím nhả thì hai tiếp điểm không được nối với nhau, đầu ra có mức điện áp dương tương ứng với mức logic 1. Khi phím được nhấn thì hai tiếp điểm được nối với nhau qua công tắc phím và đầu ra có mức điện áp bằng 0V tương ứng mức logic 0.

+ Mạch điện tử quét: Bao gồm bộ đếm nhị phân và bộ giải mã. Tạo ra tín hiệu quét các cột của bàn phím.

- Ta sẽ xem xét cấu trúc của ma trận 16 phím cùng với phương pháp tạo mã quét (hình dưới) để hiểu rõ hơn về bàn phím.

+ Bộ đếm nhị phân: Nhận tín hiệu xung nhịp phù hợp với tốc độ nhấn phím và tín hiệu

84

Page 85: Giáo trình kiến trúc máy tính ICTU

ra của bộ đếm được đưa vào đầu vào mạch giải mã+ Mạch giải mã: Thực hiện chức năng giải mã các tín hiệu vào tương ứng thành tín hiệu

ra nối với các dây cột của bàn phím sao cho lần lượt các dây cột sẽ có mức logic là 0 (tín hiệu quét bàn phím).

+ Ma trận phím gồm các dây hàng và các dây cột giao nhau nhưng không tiếp xúc với nhau. Các công tắc phím được đặt ở chỗ giao của hàng và cột. Hai tiếp điểm của công tắc nằm ở trên hàng và cột tại chỗ giao nhau đó. Mỗi khi phím được nhấn thì hai dây hàng và cột được nối với nhau qua hai tiếp điểm và công tắc tại chỗ giao nhau.

+ Nguyên tắc quét phím và tạo mã như sau: Đầu ra X0X1 của bộ đếm nhị phân 2 bit lần lượt cho ra các mã 00, 01,

10,11, ..., mã này được đưa vào bộ giải mã hai đầu vào 4 đầu. ở đầu ra C3C2C1C0 của bộ giải mã sẽ lần lượt xuất hiện các giá trị 1110, 1101, 1011, 0111, ... Các dây cột Ci của ma trận phím lần lượt có mức logic 0, thao tác này được gọi là thao tác "quét" bàn phím. Khi không phím nào đuợc nhấn thì tất cả các dây hàng H3H2H1H0 đều có mức logic 1. Khi có một phím nào đó được nhấn thì hai dây hàng và cột được nối với nhau tại chỗ phím đang nhấn, một mã tương ứng phím đang nhấn được tạo ra ở đầu ra X1X0H3H2H1H0.

Ví dụ: Nếu phím 6 được nhấn, tại thời điểm dây cột chứa phím 6 (dây C2) có mức logic 0 thì

dây hàng chứa phím 6 (dây H2), do công tắc 6 đóng, cũng có mức logic 0. Mã đầu ra X1X0H3H2H1H0 = 101011.

Nếu phím A được nhấn, tại thời điểm dây cột chứa phím A (dây C2) có mức logic 0 thì dây hàng chứa phím A (dây H1), do công tắc A đóng, cũng có mức logic 0. Mã đầu ra X1X0H3H2H1H0 = 101101.

Nếu phím 7 được nhấn, tại thời điểm dây cột chứa phím 7 (dây C3) có mức logic 0 thì dây hàng chứa phím số 7 (dây H2), do công tắc 7 đóng, cũng có mức logic 0. Mã đầu ra X1X0H3H2H1H0 = 111011, v.v...

- Hệ thống bàn phím của máy tínhHệ thống bàn phím của máy tính gồm hai phần bàn phím và thiết bị giao diện bàn phím,

được kết nối và trao đổi thông tin theo kiểu “chủ” “thợ”.

85

Page 86: Giáo trình kiến trúc máy tính ICTU

Bàn phím là tổ hợp của ma trận 8x13 phím và mạch điều khiển 8048. Mạch 8048 là một hệ vi xử lý nhỏ được tích hợp trên một đơn nhịp. Mạch 8048 bao gồm CPU, bộ nhớ ROM chứa chương trình điều khiển quét và tạo mã phím. RAM chứa dữ liệu của chương trình điều khiển, hai cổng vào/ra P1 và P2, một cổng dữ liệu 8 bit. Mạch 8048 tuần tự đưa mã nhị phân 3 bit ra tại cổng P2, qua bộ giải mã Vào 3 Ra 8 tạo ra tín hiệu quét bàn phím. Tại thời điểm mã 3 bít được đưa ra, mạch 8048 thực hiện đọc tín hiệu 13 bit từ ma trận phím vào cổng P1, từ đây tạo ra mã phím (mã quét) của phím đuợc nhấn. Khi phím được nhả một mã phím (mã quét) cũng được tạo ra bằng cách cộng mã phím nhấn với 80h.

Mạch 8048, được nuôi bằng nguồn từ máy tính, thực hiện trao đổi thông tin với thiết bị giao diện bàn phím KC8042 theo kiểu nối tiếp đồng bộ. KC 8042 có cấu trúc tương tự mạch 8048. KC 8042 đóng vai trò "chủ", 8048 đóng vai trò "thợ" trong các quá trình truyền tin thông qua hai dây tín hiệu: dây "DATA" và dây "CLOCK".

Dây "DATA" truyền tín hiệu dữ liệu nối tiếp giữa 8048 và KC 8042. Tín hiệu nối tiếp bao gồm: bit START, 8 bit dữ liệu, 1 bit PARITY, 1 bit STOP. Quy trình trao đổi thông tin giữa 8048 và KC 8042 được đồng bộ bởi tín hiệu trên dây "CLOCK".

Quá trình truyền dữ liệu được thực hiện như sau: Mạch 8048 luôn phải kiểm tra trạng thái truyền tin qua hai dây "DATA" và "CLOCK"

trước khi phát đi mã phím. Khi KC 8042 đặt "DATA" = 0 và "CLOCK" = 1 thì 8048 phải nhận các chỉ lệnh từ KC 8042. Khi KC 8042 đặt "DATA" = 1 và (CLOCK" = 1 thì 8048 được quyền truyền mã phím cho máy tính. Quá trình truyền dữ liệu được đồng bộ bằng dãy xung đồng bộ do 8048 phát ra trên đây “CLOCK”.

Khi KC 8042 nhận được mã phím dạng nối tiếp, nó loại bỏ các bit tạo khung dữ liệu truyền, chuyển mã phím vào thanh ghi tạm và phát ra yêu cầu ngắt IRQ1 cho hệ thống ngắt cứng. Hệ thống ngắt cứng sẽ kích hoạt chương trình phục vụ bàn phím 09h (chương trình phục vụ ngắt 09h) nằm ở BIOS. Chương trình phục vụ bàn phím 09h có chức năng dịch mã phím thành mã hai byte và chứa vào vùng đệm bàn phím.

Chương trình phục vụ bàn phím 09h trước hết kiểm tra (mã) các phím trượt (Shift, Alt, Ctrl) và các phím đặc biệt (ScrollLock, NumLock, CapsLock, Insert) trước khi dịch mã phím sang mã hai byte.

Mã hai byte được chương trình phục vụ bàn phím 09h tạo ra có cấu trúc tuỳ thuộc mã phím hoặc tổ hợp mã phím nhận được. Nếu nhận được mã của phím ký tự thì byte thấp của mã hai byte chứa mã ASCII của ký tự tương ứng, byte cao chứa mã phím (mã quét phím). Khi chương trình phục vụ bàn phím 09h nhận được mã các phim không phải là ký tự thì byte thấp của mã hai byte có giá trị 0, byte cao chứa mã phím mở rộng.

Vùng đệm bàn phím có kích thước 32 byte nằm trên bộ nhớ chính tại địa chỉ 0000h : 041Eh. Trạng thái của các phím trượt và các phím đặc biệt được chứa ở hai ô nhớ 0000h : 0417h và 0000h : 0418h. Có thể truy nhập vùng đệm bàn phím để đọc thông tin về bàn phím nhờ chương trình phục vụ ngắt 16h của BIOS.

86

Page 87: Giáo trình kiến trúc máy tính ICTU

Chương trình phục vụ bàn phím 09h cũng xử lý các trường hợp đặc biệt như:

- Khi phím được nhấn quá lâu (ví dụ quá 0,5 giây) và KC 8042 không nhận được mã phím nhả, nó sẽ gửi ra cho đơn vị xử lý trung tâm mã của phím được nhấn.

- Khi nhận được tổ hợp các phím Ctrl+Alt+Del nó sẽ khởi động lại máy tính hoặc kết thúc một nhiệm vụ.

- Khi nhận được mã phím PrintSereen nó sẽ kích hoạt ngắt 05h của BIOS. - Khi nhận được mã phím Ctrl+Break nó sẽ kích hoạt ngắt 1Bh của BIOS. # Vùng đệm bàn phím có kích thước 32byte nằm trên bộ nhớ chính tại địa chỉ 000h:041EH.

Trạng thái của các phím đặc biệt được chứa ở 2 ô nhớ 0000h:0417h và 0000:0418h. Có thể truy nhập vùng đệm bàn phím để đọc thông tin về bàn phím nhờ chương trình phục vụ ngắt 16h của BIOS.

Vùng đệm (bộ đềm) bàn phím: Lưu trữ tạm thời các ký tự. Bộ đệm có thể lưu trữ tạm thời đến 16 ký tự.4.2.2 Màn hìnhVới công nghệ chế tạo màn hình hiện nay thì có rất nhiều loại màn hình :+ Màn hình CRT+ Màn hình tinh thể lỏng LCD+ Màn hình cảm ứng…Chúng ta sẽ đi tìm hiểu về màn hình CRT

- Màn hình ống tia âm cực CRT (Cathode Ray Tube)Màn hình ống tia âm cực CRT là thiết bị hiển thị thông dụng nhất hiện nay. Màn hình CRT

có cấu tạo như sau:

Màn hình CRT là một ống thuỷ tinh chân không với các bộ phận: cathode phát xạ điện tử, ống phóng tia điện tử, cuộn lái tia và màn hiển thị. Cathode bằng kim loại được nối với điện áp âm, được đốt nóng và tạo ra các điện tử tự do. Màn hiển thị được phủ một lớp chất liệu phát quang và dẫn điện, được nối với điện áp dương và đóng vai trò một anode. Dưới tác dụng của điện trường cường độ cao trong ống phóng, điện tử rời khỏi cathode, được hội tụ thành chùm tia hướng về phía màn hiển thị. Cuộn lái tia có tác dụng lái chùm tia điện tử dịch chuyển theo hai chiều dọc và ngang màn hình. Khi chùm tia điện tử đập vào màn hiển thị sẽ tạo nên một điểm phát sáng.

87

Page 88: Giáo trình kiến trúc máy tính ICTU

Cường độ điểm sáng phụ thuộc vào cường độ chùm tia và chất liệu phát sáng. Khi chùm tia mất đi hoặc chuyển hướng thì điểm vẫn còn lưu sáng một khoảng thời gian ngắn sau đó, thời gian lưu sáng phụ thuộc vào chất liệu phát sáng và cường độ chùm tia.

Ảnh trên màn hình CRT được tạo từ các điểm ảnh. Điểm ảnh được tạo ra khi cường độ chùm tia điện tử được tăng lên, điểm ảnh không xuất hiện khi chùm tia bị tắt đi. Các điểm ảnh được tạo theo từng dòng, từ trên xuống dưới. Một ảnh hoàn chỉnh được tạo ra trên màn hiển thị bởi các dòng chứa các điểm ảnh. Các điểm ảnh chỉ tồn tại trong một thời gian rất ngắn. Để có thể quan sát được ảnh cần làm tươi các điểm ảnh theo một chu kỳ xác định. Các điểm ảnh được làm tươi theo từng dòng, bắt đầu từ dòng thứ nhất. Các dòng được làm tươi tuần tự từ trên xuống dưới. Khi dòng cuối cùng được quét xong, quá trình làm tươi được bắt đầu lại từ dòng đầu tiên.

- Hiển thị ở chế độ văn bảnCác thiết bị hiển thị được sử dụng ở máy vi tính PC đều là loại ánh xạ bộ nhớ. Bộ nhớ

này được cả đơn vị xử lý trung tâm và thiết bị điều khiển màn hình cùng truy nhập và được gọi là bộ nhớ hiển thị. Thông tin cần hiển thị được đưa ra bộ nhớ hiển thị, thiết bị điều khiển màn hình CRTC liên tục đọc lại bộ nhớ này để đưa ra màn hình. Hình dưới minh họa nguyên tắc ánh xạ từ bộ nhớ hiển thị ra màn hình từ chế độ văn bản:

Mỗi một ký tự trên màn hình là một ánh xạ của một ô nhớ hai byte trong bộ nhớ hiển thị. Byte đầu chứa mã ASCII của ký tự, byte thứ hai chứa thuộc tính (màu nền, màu chữ, có/không nhấp nháy) của ký tự. Vị trí của mã ký tự trong bộ nhớ xác định vị trí ký tự trên màn hình. Mã ký tự đầu tiên trong bộ nhớ hiển thị (ví dụ : mã 41H) được ánh xạ thành ký tự (ký tự A) lên

88

Page 89: Giáo trình kiến trúc máy tính ICTU

góc trái trên của màn hiển thị, mã ký tự tiếp theo được ánh xạ thành ký tự tiếp theo v.v. Phương pháp ánh xạ bộ nhớ cho phép chương trình máy tính có thể dễ

dàng thay đổi nộ dung màn hiển thị bằng cách thay đổi nội dung của bộ nhớ hiển thị.

Mỗi ký tự được hiển thị trên màn hình dưới dạng một ma trận 8x8 điểm ảnh sáng/tối như trên hình vẽ

Phương pháp hiển thị ánh xạ bộ nhớ không hoàn toàn phù hợp với việc hiển thị các đối tượng có hình dạng không bình thường và chuyển động nhanh, đáp ứng thời gian thực bị chậm vì cần phải thao tác nhiều điểm ảnh để dịch chuyển đối tượng.

- Bộ điều khiển màn hình CRTCThiết bị giao diện màn hình (bộ điều khiển màn hình) CRTC thực hiện việc chuyển mã ký tự trong

bộ nhớ hiển thị thành ký tự hiện trên màn hình. Ở chế độ văn bản các mẫu ký tự chỉ được hiển thị ở các vị trí hàng và cột cố định (25 hàng x 80 cột).

Sơ đồ nguyên lý của thiết bị giao diện màn hình ở chế độ văn bản như sau (hình dưới):

Mỗi ký tự trên màn hình chứa nhiều hàng điểm ảnh. CRTC có nhiệm vụ chuyển đổi mã ASCII trong bộ nhớ hiển thị thành chuỗi các mẫu điểm ảnh, đưa mỗi mẫu lên một dòng màn hình. Điều này được thực hiện nhờ bộ ROM tạo ký tự. Ví dụ hộp mẫu ký tự A có dạng sau :

89

Page 90: Giáo trình kiến trúc máy tính ICTU

Nếu cần hiển thị 256 ký tự ASCII cần một ROM 2Kbyte, đủ chứa 256 hộp mẫu ký tự, mỗi hộp mẫu chiếm 8 ô nhớ liền nhau. Các hộp mẫu ký tự trong bộ ROM tạo ký tự được định vị bằng địa chỉ 11 bit, trong đó 8 bit địa chỉ cao xác định vị trí của hộp trong ROM, 3 bit địa chỉ thấp xác định vị trí của từng byte mẫu điểm ảnh trong hộp đó. Các mẫu ký tự được đặt trong ROM theo trật tự của bảng mã ASCII.

Nguyên lý hoạt động của thiết bị màn hình trong chế độ văn bản như sau : giả sử cần hiển thị hai ký tự A và B tại các vị trí 0 - cột 0 và hàng 0 - cột 1 trên màn hình. Mã ASCII của hai ký tự được đặt tại hai vị trí tương ứng trong bộ nhớ hiển thị (xem hình vẽ ở mục hiển thị chế độ văn bản).

CRTC gửi địa chỉ hàng và cột màn hình cho bộ nhớ hiển thị (hàng = 0, cột = 0). Bộ nhớ hiển thị gửi mã ASCII của ký tự mang thông tin về địa chỉ của hộp mẫu ký tự trong ROM của ký tự (ký tự A) cho ROM, mã ASCII của ký tự mang thông tin về địa chỉ của hộp mẫu ký tự trong ROM (8bit địa chỉ cao). Tại cùng thời điểm này CRTC gửi địa chỉ của dòng mẫu điểm ảnh (dòng mẫu điểm 0) cho ROM (3 bit địa chỉ thấp). Hai địa chỉ này được kết hợp tạo thành địa chỉ (11 bit) cho phép truy nhập vào dòng mẫu điểm ảnh đầu tiên của ký tự (ký tự A) trong ROM và xuất nó ra thanh ghi dịch ảnh. Từ thanh ghi dịch ảnh, từng bit mẫu ảnh tuần tự được đưa ra màn hình.

Khi tất cả các bit mẫu ảnh từ thanh ghi dịch được đẩy ra màn hình, CRTC tiếp tục gửi địa chỉ hàng - cột (hàng =0, cột = 1) cho bộ nhớ hiển thị và gửi địa chỉ dòng mẫu điểm ảnh (dòng mẫu điểm 0) cho ROM, bộ nhớ hiển thị gửi mã ASCII của ký tự (ký tự B) cho ROM. Dòng mẫu điểm ảnh đầu tiên của ký tự (ký tự B) được xuất ra thanh ghi dịch ảnh. Tương tự như thế các dòng mẫu điểm đầu tiên của tất cả các ký tự trên cùng một hàng màn hình được hiển thị, cho đến ký tự cuối cùng trên hàng.

CRTC tiếp tục gửi địa chỉ hàng - cột (hàng = 0, cột = 0) đến bộ nhớ hiển thị, nhưng địa chỉ dòng mẫu điểm ảnh bây giờ là 1 (dòng mẫu điểm 1) cho ROM. Bộ nhớ hiển thị gửi mã ASCII của ký tự A cho ROM, ROM xuất ra dòng mẫu điểm ảnh 1 của ký tự A. Dòng 1 của ký tự B xuất ra theo cách tương tự. Các dòng điểm ảnh tiếp theo của ký tự lần lượt được hiển thị lên màn hình cho đến khi tất cả các dòng điểm ảnh của hàng văn bản đầu tiên (hàng 0) được hiển thị lên màn hình.

Các hàng văn bản tiếp theo cũng được hiển thị theo phương pháp nói trên. Trên thực tế hoạt động của CRTC phức tạp hơn. CRTC phải có khả năng hiển thị ở chế

90

Page 91: Giáo trình kiến trúc máy tính ICTU

độ đồ hoạ. CRTC phải theo dõi thông tin về thuộc tính về ký tự hiển thị, phải tạo ra điểm nháy. CRTC cũng phải tạo ra hai tín hiệu đồng bộ ảnh ngang - dọc và làm tươi màn hình. Tần số làm tươi tối thiểu là 50 Hz.

Phương pháp hiển thị trên không hoàn toàn phù hợp với việc hiển thị các đối tượng có hình dạng không bình thường và chuyển động nhanh, đáp ứng thời gian thực bị chậm vì cần phải thao tác nhiều điểm ảnh để dịch chuyển đối tượng.4.2.3 Đĩa từ

4.2.3.1 Nguyên lý lưu trữ thông tin trên đĩa từCác thiết bị lưu trữ thông tin như ổ đĩa mềm và ổ cứng đều thực hiện ghi/đọc thông

tin trên cơ sở hiện tượng cảm ứng điên từ. Khi có một dòng điện chạy qua dây dẫn thì xuất hiện từ trường quanh dây dẫn này. Khi chiều dòng điện trong dây thay đổi thì cực của từ trường cũng thay đổi theo. Hiện tượng điện từ có tính hai chiều, khi dây dẫn nằm trong một từ trường biến thiên sẽ có dòng điện cảm ứng xuất hiện trong dây dẫn này. Từ trường sinh ra bởi dây dẫn có dòng điện chạy qua có thể tác động một lực từ lên các chất từ tính nằm trong từ trường này.

Thiết bị lưu trữ kiểu đĩa từ bao gồm hai bộ phận chính là đầu từ ghi/đọc và đĩa từ. Đầu từ ghi đọc là một cuộn dây có lõi hình chữ U bằng chất liệu từ. Đĩa từ, vật lưu trữ thông tin, là một đĩa được làm từ chất dẻo hoặc nhôm và được phủ một chất liệu từ tính. Khi mới được chế tạo mỗi phần tử từ trên đĩa có một từ trường riêng, cực của các phần tử từ có hướng ngẫu nhiên, do vậy từ trường của chúng triệt tiêu lẫn nhau và không quan sát được.

Trong quá trình ghi thông tin một dòng điện được đưa vào cuộn dây, sinh ra một từ trường trong lõi dây. Đường cảm ứng đi qua một cực của lõi chữ U, đi qua lớp phủ từ tính trên đĩa, trở lại lõi dây qua cực thứ hai. Khi từ trường đi qua một vùng các phần tử từ tính trên đĩa sẽ làm định hướng lại cực từ của chúng. Tổng từ trường của các phần tử từ trong một vùng đã được từ hoá cùng hướng lúc này trở nên quan sát được (mang tải được thông tin). Khi dòng điện trong cuộn dây đảo chiều thì cũng sinh ra đảo chiều phân cực của các vùng từ tính trên mặt đĩa, hiện tượng này gọi là đảo từ thông. Các đảo từ thông tạo nên danh giới giữu cá vùng từ hoá. Việc tạo ra các đảo từ thông được bộ điều khiển ổ đĩa dùng để mã hóa việc ghi dữ liệu lên đĩa. Các phương pháp mã hoá được dùng là MF, MFM, RLL. Khi đọc, đầu từ chuyển động song song với từ trường đã được tạo ra trên mặt đĩa, vì thế dòng điện cảm ứng chỉ xuất hiện trong cuộn dây khi đầu từ đi ngang qua một đoạn đảo từ thông. Trong thao tác đọc, nhờ phát hiện được các đảo từ thông mà bộ điều giải mã và khôi phục lại thông tin đã ghi.

4.2.3.2 Thiết bị đĩa mềm

91

Page 92: Giáo trình kiến trúc máy tính ICTU

- Ổ đĩa mềm có cấu trúc như sau:

Ổ đĩa mềm có hai đầu từ ghi/đọc, mỗi đầu từ có hai khe ghi/đọc và xoá nằm so le với nhau. Khi ghi dữ liệu thì đầu xoá đồng thời sẽ xoá hết vệt nằm bên ngoài và tạo nên một vệt cách li giữa các rãnh. Đầu ghi/đọc được dịch chuyển trên bề mặt đĩa mềm bởi một cơ cấu chuyển động đầu từ.

Cơ cấu chuyển động đầu từ sử dụng động cơ bước. Loại động cơ này mỗi lần dịch chuyển chỉ quay được một góc nhất định, gọi là một bước. Lượng bước được xác định bởi dung lượng xung điện cấp cho động cơ. Logic điều khiển ổ đĩa có thể dễ dàng điều khiển động cơ dịch chuyển đầu từ đến các lượng bước xác định trước.

Động cơ quay có chức năng quay đĩa mềm với một vận tốc nhất định, thường là 300vòng/phút. Nhờ đĩa từ được quay liên tục nên khi dữ liệu được phân bổ đều trên rãnh và khi đọc sẽ tạo nên một từ trường biến thiên ở đầu đọc.

Logic ghi/đọc tạo tín hiệu ghi. Nhận và khuếch đại tín hiệu đọc. Logic điều khiển một mặt tạo giao diện giữa ổ đĩa và thiết bị dao diện đĩa mềm FDC, mặt

kia tạo tín hiệu điều khiển động cơ quay, cơ cấu truyền động đầu từ, nhận các tín hiệu cảm biến lỗ chỉ số và cảm biến chống ghi.

- Thiết bị giao diện đĩa mềm FDC (Floppy Disk Controller)Giao diện chuẩn của các ổ đĩa mềm là giao diện SA 400. Thiết bị giao diện đĩa mềm được

xây dựng trên cơ sở vi mạch điều khiển chuyên dụng µPD765 của hãng NEC. Thiết bị giao diện đĩa mềm FDC thực hiện chức năng giao diện giữa đơn vị xử lý trung tâm và ổ đĩa mềm. FDC thực hiện với giao diện xử lý trung tâm qua các tín hiệu điều khiển chuẩn của đơn vị xử lý trung tâm và qua một hệ 15 lệnh. FDC có khả năng làm việc ở cả hai chế độ DMA và không DMA. ở chế độ không DMA FDC tạo ra tín hiệu ngắt mỗi khi byte dữ liệu được truyền. ở chế độ DMA đơn vị xử lý trung tâm chỉ cần nạp lệnh cho FDC và toàn bộ việc truyền dữ liệu được thực hiện dưới sự điều khiển của FDC và DMAC.

92

Page 93: Giáo trình kiến trúc máy tính ICTU

FDC thực hiện ghi 15 lệnh : Ghi dữ liệu, đọc dữ liệu, đọc một rãnh, đọc trường nhận dạng trong một cung, tạo khuôn dạng một rãnh, xác lập kiểu mã hoá dữ liệu ghi/đọc, dịch chuyển đầu từ v.v.

Ví dụ, lệnh ghi dữ liệu chứa các thông số như : rãnh, mặt, cung và độ dài một cung chứa dữ liệu cần ghi. Khi lệnh ghi được nạp cho FDC, FDC bắt đầu đọc các trường địa chỉ trên rãnh, đến khi gặp trường địa chỉ phù hợp với địa chỉ yêu cầu FDC bắt đầu lấy từng byte dữ liệu đơn vị xử lý trung tâm và đưa ra ổ đĩa.

Quá trình thực hiện một lệnh trải qua 3 giai đoạn : Giai đoạn nạp lệnh : FDC nhận lệnh từ Bộ xử lý trung tâm, giải mã để nhận các thông

tin về các thao tác cần thiết khi nhận lệnh này. Giai đoạn thực hiện: FDC thực hiện các thao tác thực thi lệnhGiai đoạn kết quả : Sau khi lệnh được thực thi, trạng thái thực hiện lệnh được chuyển về

cho Bộ xử lý trung tâm. Giai đoạn nạp lệnh cho FDC được thực hiện theo lưu đồ sau:

93

Page 94: Giáo trình kiến trúc máy tính ICTU

Lưu đồ thực hiện giai đoạn kết quả:

4.2.3.3 Thiết bị đĩa cứng và giao diện IDE- Ổ đĩa cứngĐĩa cứng là một thiết bị lưu trữ kiểu từ tính. Ổ đĩa cứng gồm các lá đĩa

bằng hợp kim nhôm hoặc thuỷ tinh. Mặt lá đĩa được phủ một lớp màng mỏng oxit kim loại có khả năng từ hoá. Các lá đĩa cứng được gắn kết đồng tâm trên một trục và được quay bởi động cơ một chiều với tốc độ 3600 vòng/phút, một số ổ đĩa có tốc độ quay tới 5400, 6400 và 7200 vòng/phút. Mỗi ổ đĩa có từ 2 đến 5 lá đĩa, một số ổ đĩa có tới 11 lá đĩa. Mỗi lá có hai mặt, các mặt được đánh số thứ tự từ 0, 1, 2 v.v Mỗi mặt đĩa có một từ ghi/đọc, các đầu từ ghi và đọc dữ liệu trên đĩa theo những vòng tròn đồng tâm, được gọi là rãnh ( track). Do các lá đĩa cứng được gắn chặt trên một trục, do cơ cấu điều khiến đầu từ có độ chính xác cao, nên mật độ rãnh thực có thể lên tới 30000 rãnh/inch.

Các đầu từ ghi/đọc được gắn trên một cơ cấu dịch chuyển duy nhất, nên chúng được dịch chuyển đồng thời trên các lá đĩa. Mỗi một đầu từ nằm trên một cánh tay của cơ cấu truyền động và được ép sát mặt đĩa khi đĩa không quay. Khi ổ đĩa quay với tốc độ cao thì áp lực không khí hình thành giữa mặt đĩa và đầu từ sẽ nâng đầu từ lên cách mặt đĩa khoảng 3 ÷ 10 µinch. Các loại đầu từ kiểu ferit có kích thước lớn và nặng nề nên không thích hợp cho việc ghi/đọc dữ liệu với mật độ và tốc độ cao ở ổ cứng. Trong các ổ cứng thường dùng đầu từ phim mỏng TF (Thin Film). Đầu từ TF được sản xuất theo công nghệ sản xuất mạch vi điện tử nên có chất lượng cao và rất nhỏ. Do nhỏ và nhẹ mà chúng có thể nổi trên bề mặt lá đĩa ở độ cao chưa tới 3 µinch, điều này tạo khả năng ghi dữ liệu với mật độ cao hơn, đồng thời lại cảm nhận tín hiệu khi đọc mạnh hơn.

Cơ cấu dịch chuyển đầu từ để tìm kiếm rãnh ở ổ đĩa cứng khác hẳn so với

94

Page 95: Giáo trình kiến trúc máy tính ICTU

ổ đĩa mềm. Động cơ dịch chuyển đầu từ không theo bước mà hoạt động theo cơ chế truyền động có phản hồi. Thông tin phản hồi nhận được trong quá trình dịch chuyển đầu từ là nhờ có một thông tin đặc biệt được ghi sẵn trên đĩa cứng khi sản xuất đĩa. Thông tin về vị trí rãnh được ghi (Nhúng) trên từng cung của đĩa dưới dạng mã Gray. Cơ cấu truyền động có dùng thông tin định vị nhúng giữa các cung được gọi là cơ cấu truyền động nhúng ( Embedded Servo). Nhờ nhận được thông tin phản hồi liên tục về vị trí rãnh trong quá trình dịch chuyển mà việc định vị đầu từ được thực hiện chính xác và nhanh chóng.

- Giao diện IDEGiao diện IDE (Integrated Drive Electronic - Mạch điện tử tích hợp trên thiết bị) là giao

diện được dùng để kết nối thiết bị đĩa cứng với BUS hệ thống của máy tính. IDE là thuật ngữ dùng để mô tả viẹc mạch điện tử điều khiển giao diện HDC được gắn ngay cùng với ổ đĩa HDD trong thiết bị đĩa cứng.

95

Page 96: Giáo trình kiến trúc máy tính ICTU

Tài liệu tham khảo [1] Vũ Chấn Hưng, Giáo trình kiến trúc máy tính, nhà xuất bản giao thông vận tải, 2004[2] Nguyễn Nam Trung,Cấu trúc máy vi tính và thiết bị ngoại vi.Nhà xuất bản Khoa học kỹ

thuật. 2000.[3] Nguyễn Trung Đồng- Bui Hoa, Giáo trình kỹ thuật vi xử lý, Khoa CNTT[4] Daniel Tabak, Advanced Microprocessors. McGraw-Hill, Inc. 1995.[5] William Stalling, Computer Architecture.

96