Giáo trình Kiến trúc máy tính - Võ Văn Chín

MỤC LỤC .2

GIỚI THIỆU TỔNG QUAN.5

GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH .5

MỤC ĐÍCH.5

YÊU CẦU .5

NỘI DUNG .6

KIẾN THỨC TIÊN QUYẾT.6

TÀI LIỆU THAM KHẢO .6

PHƯƠNG PHÁP HỌC TẬP .6

CHƯƠNG I: ĐẠI CƯƠNG .7

I.1 CÁC THẾ HỆ MÁY TÍNH.7

a. Thế hệ đầu tiên (1946-1957).7

b. Thế hệ thứ hai (1958-1964) .8

c. Thế hệ thứ ba (1965-1971) .8

d. Thế hệ thứ tư (1972-????).8

e. Khuynh hướng hiện tại .8

I.2 PHÂN LOẠI MÁY TÍNH.9

I.3 THÀNH QUẢ CỦA MÁY TÍNH .10

QUI LUẬT MOORE VỀ SỰ PHÁT TRIỂN CỦA MÁY TÍNH .10

I.4- THÔNG TIN VÀ SỰ MÃ HOÁ THÔNG TIN.12

I.4.1 - Khái niệm thông tin.12

I.4.2 - Lượng thông tin và sự mã hoá thông tin.13

I.4.3 - Biểu diễn các số: .13

I.4.4 Số nguyên có dấu.16

I.4.5 - Cách biểu diễn số với dấu chấm động:.17

I.4.6 - Biểu diễn các số thập phân .19

I.4.7 - Biểu diễn các ký tự .19

CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG I.22

CHƯƠNG II: KIẾN TRÚC PHẦN MỀM BỘ XỬ LÝ.23

II.1 - THÀNH PHẦN CƠ BẢN CỦA MỘT MÁY TÍNH.23

II.2 - ĐỊNH NGHĨA KIẾN TRÚC MÁY TÍNH.25

II.3 - CÁC KIỂU THI HÀNH MỘT LỆNH .25

II.4 - KIỂU KIẾN TRÚC THANH GHI ĐA DỤNG.27

II.5 - TẬP LỆNH.27

II.5.1 - Gán trị.28

II.5.2 - Lệnh có điều kiện .29

II.5.3 - Vòng lặp.30

II.5.4 - Thâm nhập bộ nhớ ngăn xếp.31

II.5.5 - Các thủ tục.31

II.6 - CÁC KIỂU ĐỊNH VỊ .33

pdf95 trang | Chia sẻ: lethuong715 | Lượt xem: 655 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Kiến trúc máy tính - Võ Văn Chín, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
L) dùng từ ngắt quãng để ám chỉ sự kiện này, tuy 
nhiên một số nhà sản xuất khác dùng từ “ngoại lệ”, “lỗi”, “bẩy” để chỉ định hiện tượng 
này. 
Bộ điều khiển của CPU là bộ phận khó thực hiện nhất và ngắt quãng là phần khó 
thực hiện nhất trong bộ điều khiển. Để nhận biết được một ngắt quãng lúc đang thi hành 
một lệnh, ta phải biết điều chỉnh chu kỳ xung nhịp và điều này có thể ảnh hưởng đến hiệu 
quả của máy tính. 
Người ta đã nghỉ ra “ngắt quãng” là để nhận biết các sai sót trong tính toán số 
học, và để ứng dụng cho những hiện tượng thời gian thực. Bây giờ, ngắt quãng được 
dùng cho các công việc sau đây: 
‰ Ngoại vi đòi hỏi nhập hoặc xuất số liệu. 
‰ Người lập trình muốn dùng dịch vụ của hệ điều hành. 
 47
Kiến trúc máy tính Chương III: Tổ chức bộ xử lý 
‰ Cho một chương trình chạy từng lệnh. 
‰ Làm điểm dừng của một chương trình. 
‰ Báo tràn số liệu trong tính toán số học. 
‰ Trang bộ nhớ thực sự không có trong bộ nhớ. 
‰ Báo vi phạm vùng cấm của bộ nhớ. 
‰ Báo dùng một lệnh không có trong tập lệnh. 
‰ Báo phần cứng máy tính bị hư. 
‰ Báo điện bị cắt. 
Dù rằng ngắt quãng không xảy ra thường xuyên nhưng bộ xử lý phải được thiết 
kế sao cho có thể lưu giữ trạng thái của nó trước khi nhảy đi phục vụ ngắt quãng. Sau khi 
thực hiện xong chương trình phục vụ ngắt, bộ xử lý phải khôi phục trạng thái của nó để 
có thể tiếp tục công việc. 
Để đơn giản việc thiết kế, một vài bộ xử lý chỉ chấp nhận ngắt sau khi thực hiện 
xong lệnh đang chạy. Khi một ngắt xảy ra, bộ xử lý thi hành các bước sau đây: 
1. Thực hiện xong lệnh đang làm. 
2. Lưu trữ trạng thái hiện tại. 
3. Nhảy đến chương trình phục vụ ngắt 
4. Khi chương trình phục vụ chấm dứt, bộ xử lý khôi phục lại trạng thái cũ của 
nó và tiếp tục thực hiện chương trình mà nó đang thực hiện khi bị ngắt. 
III.5. KỸ THUẬT ỐNG DẪN (PIPELINE) 
Đây là một kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi 
hành cùng một lúc. 
Ví dụ: Chúng ta có những lệnh đều đặn, mỗi lệnh được thực hiện trong cùng một 
khoản thời gian. Giả sử, mỗi lệnh được thực hiện trong 5 giai đoạn và mỗi giai đoạn được 
thực hiện trong 1 chu kỳ xung nhịp. Các giai đoạn thực hiện một lệnh là: lấy lệnh (IF: 
Instruction Fetch), giải mã (ID: Instruction Decode), thi hành (EX: Execute), thâm nhập 
bộ nhớ (MEM: Memory Access), lưu trữ kết quả (RS: Result Storing). 
Hình III.4 cho thấy chỉ trong một chu kỳ xung nhịp, bộ xử lý có thể thực hiện 
một lệnh (bình thường lệnh này được thực hiện trong 5 chu kỳ). 
Chuỗi lệnh Chu kỳ xung nhịp 
 1 2 3 4 5 6 7 8 9 
Lệnh thứ i IF ID EX MEM RS 
Lệnh thứ i+1 IF ID EX MEM RS 
Lệnh thứ i+2 IF ID EX MEM RS 
Lệnh thứ i+3 IF ID EX MEM RS 
Lệnh thứ i+4 IF ID EX MEM RS 
Hình III.4: Các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc 
 48
Kiến trúc máy tính Chương III: Tổ chức bộ xử lý 
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ư vậy kỹ thuật ống dẫn làm tăng tốc độ thực hiện các lệnh. Tuy nhiên kỹ thuật 
ống dẫn có một số ràng buộc: 
- Cần phải có một mạch điện để thi hành mỗi giai đoạn của lệnh vì tất cả các 
giai đoạn của lệnh được thi hành cùng lúc. Trong một bộ xử lý không dùng kỹ thuật ống 
dẫn, ta có thể dùng bộ làm toán ALU để cập nhật thanh ghi PC, cập nhật địa chỉ của toán 
hạng bộ nhớ, địa chỉ ô nhớ mà chương trình cần nhảy tới, làm các phép tính trên các toán 
hạng vì các phép tính này có thể xảy ra ở nhiều giai đoạn khác nhau. 
- Phải có nhiều thanh ghi khác nhau dùng cho các tác vụ đọc và viết. Trên hình 
III.4, tại một chu kỳ xung nhịp, ta thấy cùng một lúc có 2 tác vụ đọc (ID, MEM) và 1 tác 
vụ viết (RS). 
- Trong một máy có kỹ thuật ống dẫn, có khi kết quả của một tác vụ trước đó, 
là toán hạng nguồn của một tác vụ khác. Như vậy sẽ có thêm những khó khăn mà ta sẽ đề 
cập ở mục tới. 
- Cần phải giải mã các lệnh một cách đơn giản để có thể giải mã và đọc các 
toán hạng trong một chu kỳ duy nhất của xung nhịp. 
- Cần phải có các bộ làm tính ALU hữu hiệu để có thể thi hành lệnh số học dài 
nhất, có số giữ, trong một khoảng thời gian ít hơn một chu kỳ của xung nhịp. 
- Cần phải có nhiều thanh ghi lệnh để lưu giữ lệnh mà chúng ta phải xem xét 
cho mỗi giai đoạn thi hành lệnh. 
- Cuối cùng phải có nhiều thanh ghi bộ đếm chương trình PC để có thể tái tục 
các lệnh trong trường hợp có ngắt quãng. 
III.6. KHÓ KHĂN TRONG KỸ THUẬT ỐNG DẪN 
Khi thi hành lệnh trong một máy tính dùng kỹ thuật ống dẫn, có nhiều trường 
hợp làm cho việc thực hiện kỹ thuật ống dẫn không thực hiện được như là: thiếu các 
mạch chức năng, một lệnh dùng kết quả của lệnh trước, một lệnh nhảy. 
Ta có thể phân biệt 3 loại khó khăn: khó khăn do cấu trúc, khó khăn do số liệu 
và khó khăn do điều khiển. 
a. Khó khăn do cấu trúc: 
Đây là khó khăn do thiếu bộ phận chức năng, ví dụ trong một máy tính dùng kỹ 
thuật ống dẫn phải có nhiều ALU, nhiều PC, nhiều thanh ghi lệnh IR ... Các khó khăn này 
được giải quyết bằng cách thêm các bộ phận chức năng cần thiết và hữu hiệu. 
b. Khó khăn do số liệu: 
Lấy ví dụ trường hợp các lệnh liên tiếp sau: 
Lệnh 1: ADD R1, R2, R3 
Lệnh 2: SUB R4, R1, R5 
Lệnh 3: AND R6, R1, R7 
Lệnh 4: OR R8, R1, R9 
 49
Kiến trúc máy tính Chương III: Tổ chức bộ xử lý 
Hình III.5 cho thấy R1, kết quả của lệnh 1 chỉ có thể được dùng cho lệnh 2 sau 
giai đoạn MEM của lệnh 1, nhưng R1 được dùng cho lệnh 2 vào giai đoạn EX của lệnh 1. 
Chúng ta cũng thấy R1 được dùng cho các lệnh 3 và 4. 
1- ADD R1, R2, R3 IF ID EX MEM RS 
2- SUB R4, R1, R5 IF ID EX MEM RS 
3- AND R6, R1, R4 IF ID EX MEM RS 
4- OR R8, R1, R9 IF ID EX MEM RS 
Hình III.5: Chuỗi lệnh minh hoạ khó khăn do số liệu. 
Để khắc phục khó khăn này, một bộ phận phần cứng được dùng để đưa kết quả 
từ ngã ra ALU trực tiếp vô một trong các thanh ghi ngã vào như trong hình III.6. 
 CÁC THANH GHI 
Thanh ghi 
đệm chứa kết 
quả 
 Đa hợp Đa hợp 
 ALU 
 R4 
 R1 
Hình III.6: ALU với bộ phận phần cứng đưa kết quả tính toán trở lại ngã vào 
Khi bộ phận phần cứng nêu trên phát hiện có dùng kết quả của ALU làm toán 
hạng cho liệt kê, nó tác động vào mạch đa hợp để đưa ngã ra của ALU vào ngã vào của 
ALU hoặc vào ngã vào của một đơn vị chức năng khác nếu cần. 
c. Khó khăn do điều khiển: 
Các lệnh làm thay đổi tính thi hành các lệnh một cách tuần tự (nghĩa là PC tăng 
đều đặn sau mỗi lệnh), gây khó khăn về điều khiển. Các lệnh này là lệnh nhảy đến một 
địa chỉ tuyệt đối chứa trong một thanh ghi, hay lệnh nhảy đến một địa chỉ xác định một 
cách tương đối so với địa chỉ hiện tại của bộ đếm chương trình PC. Các lệnh nhảy trên có 
thể có hoặc không điều kiện. 
Trong trường hợp đơn giản nhất, tác vụ nhảy không thể biết trước giai đoạn giải 
mã (xem hình III.4). Như vậy, nếu lệnh nhảy bắt đầu ở chu kỳ C thì lệnh mà chương trình 
 50
Kiến trúc máy tính Chương III: Tổ chức bộ xử lý 
nhảy tới chỉ được bắt đầu ở chu kỳ C+2. Ngoài ra, phải biết địa chỉ cần nhảy đến mà ta có 
ở cuối giai đoạn giải mã ID. Trong lệnh nhảy tương đối, ta phải cộng độ dời chứa trong 
thanh ghi lệnh IR vào thanh ghi PC. Việc tính địa chỉ này chỉ được thực hiện vào giai 
đoạn ID với điều kiện phải có một mạch công việc riêng biệt. 
Vậy trong trường hợp lệnh nhảy không điều kiện, lệnh mà chương trình nhảy đến bắt 
đầu thực hiện ở chu kỳ C+2 nếu lệnh nhảy bắt đầu ở chu kỳ C. 
Cho các lệnh nhảy có điều kiện thì phải tính toán điều kiện. Thông thường các 
kiến trúc RISC đặt kết quả việc so sánh vào trong thanh ghi trạng thái, hoặc vào trong 
thanh ghi tổng quát. Trong cả 2 trường hợp, đọc điều kiện tương đương với đọc thanh 
ghi. Đọc thanh ghi có thể được thực hiện trong phân nửa chu kỳ cuối giai đoạn ID. 
Một trường hợp khó hơn có thể xảy ra trong những lệnh nhảy có điều kiện. Đó là 
điều kiện được có khi so sánh 2 thanh ghi và chỉ thực hiện lệnh nhảy khi kết quả so sánh là 
đúng. Việc tính toán trên các đại lượng logic không thể thực hiện được trong phân nửa chu 
kỳ và như thế phải kéo dài thời gian thực hiện lệnh nhảy có điều kiện. Người ta thường tránh 
các trường hợp này để không làm giảm mức hữu hiệu của máy tính. 
Vậy trường hợp đơn giản, người ta có thể được địa chỉ cần nhảy đến và điều kiện 
nhảy cuối giai đoạn ID. Vậy có chậm đi một chu kỳ mà người ta có thể giải quyết bằng 
nhiều cách. 
Cách thứ nhất là đóng băng kỹ thuật ống dẫn trong một chu kỳ, nghĩa là ngưng 
thi hành lệnh thứ i+1 đang làm nếu lệnh thư i là lệnh nhảy. Ta mất trắng một chu kỳ cho 
mỗi lệnh nhảy. 
Cách thứ hai là thi hành lệnh sau lệnh nhảy nhưng lưu ý rằng hiệu quả của một 
lệnh nhảy bị chậm mất một lệnh. Vậy lệnh theo sau lệnh nhảy được thực hiện trước khi 
lệnh mà chương trình phải nhảy tới được thực hiện. Chương trình dịch hay người lập 
trình có nhiệm vụ xen vào một lệnh hữu ích sau lệnh nhảy. 
Trong trường hợp nhảy có điều kiện, việc nhảy có thể được thực hiện hay không 
thực hiện. Lệnh hữu ích đặt sau lệnh nhảy không làm sai lệch chương trình dù điều kiện 
nhảy đúng hay sai. 
Bộ xử lý RISC SPARC có những lệnh nhảy với huỷ bỏ. Các lệnh này cho phép 
thi hành lệnh sau lệnh nhảy nếu điều kiện nhảy đúng và huỷ bỏ thực hiện lệnh đó nếu 
điều kiện nhảy sai. 
III.7. SIÊU ỐNG DẪN 
Máy tính có kỹ thuật siêu ống dẫn bậc n bằng cách chia các giai đoạn của kỹ 
thuật ống dẫn đơn giản, mỗi giai đoạn được thực hiện trong khoản thời gian Tc, thành n 
giai đoạn con thực hiện trong khoản thời gian Tc/n. Độ hữu hiệu của kỹ thuật này tương 
đương với việc thi hành n lệnh trong mỗi chu kỳ Tc. Hình III.7 trình bày thí dụ về siêu 
ống dẫn bậc 2, có so sánh với siêu ống dẫn đơn giản. Ta thấy trong một chu kỳ Tc, máy 
dùng kỹ thuật siêu ống dẫn làm 2 lệnh thay vì làm1 lệnh trong máy dùng kỹ thuật ống 
dẫn bình thường. Trong máy tính siêu ống dẫn, tốc độ thực hiện lệnh tương đương với 
việc thực hiện một lệnh trong khoảng thời gian Tc/n. Các bất lợi của siêu ống dẫn là thời 
gian thực hiện một giai đoạn

File đính kèm:

  • pdfLịch sử máy tính & KTMT.pdf