Giáo trình Kiến trúc máy tính - Vũ Đức Lung
Thế hệ II – transistor (1955-1965)
Sự thay ñổi ñầu tiên trong lĩnh vực máy tính ñiện tử xuất
hiện khi có sự thay thế ñèn chân không bằng ñèn bán dẫn. ðèn bán
dẫn nhỏ hơn, rẻ hơn, tỏa nhiệt ít hơn trong khi vẫn có thể ñược sử
dụng theo cùng cách thức của ñèn chân không ñể tạo nên máy tính.
Không như ñèn chân không vốn ñòi hỏi phải có dây, có bảng kim
loại, có bao thủy tinh và chân không, ñèn bán dẫn là một thiết bị ở
trạng thái rắn ñược chế tạo từ silicon có nhiều trong cát trong tự
nhiên.
ðèn bán dẫn là phát minh lớn của phòng thí nghiệm Bell
Labs trong năm 1947 bởi Bardeen, Brattain và Shockley. Nó ñã
tạo ra một cuộc cách mạng ñiện tử trong những năm 50 của thế kỷ
Bộ
Logic-số học
ALU
Bộ
ñiều khiển
CU
Bộ
nhớ
chính
Thiết
bị
nhập
xuất
Chương I: Giới thiệu
10
20. Dù vậy, mãi ñến cuối những năm 50, các máy tính bán dẫn hóa
hoàn toàn mới bắt ñầu xuất hiện trên thị trường máy tính.
Việc sử dụng ñèn bán dẫn trong chế tạo máy tính ñã xác
ñịnh thế hệ máy tính thứ hai, với ñại diện tiêu biểu là máy PDP-1
của công ty DEC (Digital Equipment Corporation) và IBM 7094
của IBM. DEC ñược thành lập vào năm 1957 và sau ñó 4 năm cho
ra ñời sản phẩm ñầu tiên của mình là máy PDP-1 như ñã ñề cập ở
trên. ðây là chiếc máy mở ñầu cho dòng máy tính mini của DEC,
vốn rất phổ biến trong các máy tính thế hệ thứ ba.
Tóm tắt nội dung tài liệu: Giáo trình Kiến trúc máy tính - Vũ Đức Lung
ðẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ðẠI HỌC CÔNG NGHỆ THÔNG TIN ----------o0o---------- Giáo trình KIẾN TRÚC MÁY TÍNH Biên soạn: TS. Vũ ðức Lung 2009 1 LỜI NÓI ðẦU Với mục tiêu ñưa các môn học chuyên ngành công nghệ thông tin vào học ngay từ những học kỳ ñầu trong trường ðại học Công nghệ thông tin, giáo trình Kiến trúc máy tính ñược biên soạn ñặc biệt cho mục ñích này và ñược ñịnh hướng cho sinh viên nghành công nghệ thông tin năm thứ nhất. Giáo trình Kiến trúc máy tính này trình bày các vấn ñề chung nhất, các thành phần cơ bản nhất cấu thành nên máy tính hiện ñại nhằm trang bị cho sinh viên các nội dung chủ yếu trong 8 chương sau: Chương I: Trình bày lịch sử phát triển của máy tính cũng như các tích năng mới của máy tính trong từng giai ñoạn, các thế hệ máy tính, ñịnh hướng phát triển của máy tính và cách phân loại máy tính. Chương II: Giới thiệu các nguyên lý hoạt ñộng chung và các tính chất cơ bản của các bộ phận chính yếu trong máy tính như: bộ xử lý (CPU), bản mạch chính (Mainboard), các thiết bị lưu trữ dữ liệu, các loại bộ nhớ RAM, Card ñồ họa, màn hình. Ngoài ra còn cho thấy ñược những hình dáng và sự tích hợp của các bộ phận với nhau nhằm giúp sinh viên có thể tự mua sắm, lắp ráp một máy tính cho mình. Chương III: Trình bày cách biến ñổi cơ bản của hệ thống số (như hệ thập phân, hệ nhị phân, hệ bát phân, hệ thập lục phân), các cách cơ bản ñể biểu diễn dữ liệu, cách thực hiện các phép tính số học cho hệ nhị phân. Chương IV: Các cổng và ñại số Boolean, các ñịnh lý trong ñại số Boolean, cách ñơn giản các hàm Boolean cũng như các mạch số, cách biểu diễn các mạch số qua các hàm Boolean và ngược lại, các mạch tổ hợp cơ bản, cách thiết kế các mạch ñơn giản. Chương V: Trình bày nguyên lý họat ñộng của các mạch lật, các flip-flop, qui trình thiết kế một mạch tuần tự và ñưa ra ví dụ cụ thể cho việc thiết kế này. Simpo PDF Merge and Split Unregistered Version - 2 Chương VI: Phân loại kiến trúc bộ lệnh, cách bố trí ñịa chỉ bộ nhớ, các cách mã hóa tập lệnh, các lệnh cơ bản của máy tính qua các lệnh hợp ngữ assembler Chương VII: Giới thiệu cấu trúc của bộ xử lý trung tâm: tổ chức, chức năng và nguyên lý hoạt ñộng của các bộ phận bên trong bộ xử lý như bộ tính toán logic số học, bộ ñiều khiển, tập các thanh ghi. Ngoài ra còn trình bày cách tổ chức ñường ñi dữ liệu, diễn biến quá trình thi hành lệnh và kỹ thuật ống dẫn. Chương VIII: Trình bày các cấp bộ nhớ, thiết kế và nguyên lý hoạt ñộng của các loại bộ nhớ. Phương pháp ñánh giá hiệu năng của các cấp bộ nhớ. Các chiến thuật thay thế khối nhớ, trang nhớ cũng như các chiến thuật ghi vào bộ nhớ. Như ñã nói ở trên, giáo trình nhằm giảng dạy cho sinh viên năm thứ nhất do ñó những kiến thức ñưa ra chỉ là cơ bản. ðể hiểu sâu hơn mọi vấn ñề nên xem thêm trong các sách tham khảo ở cuối quyển giáo trình này. Mặc dù ñã cố gắng biên soạn rất công phu và kỹ lưỡng, tuy nhiên cũng khó tránh khỏi những thiếu sót. Chúng tôi mong ñược ñón nhận các ñóng góp ý kiến của các Thầy, các bạn ñồng nghiệp, các bạn sinh viên và các bạn ñọc nhằm chỉnh sửa giáo trình ñược hoàn thiện hơn. Cuối cùng xin chân thành cảm ơn những góp ý quí giá của các ñồng nghiệp khi biên soạn giáo trình này. Vũ ðức Lung. Simpo PDF Merge and Split Unregistered Version - Chương I: Giới thiệu 3 Chương I: Giới thiệu 1.1. Lịch sử phát triển của máy tính Trong quá trình phát triển của công nghệ máy tính, con người ñã chế tạo ra hàng ngàn loại máy tính khác nhau. Rất nhiều trong số những máy tính này ñã bị quên lãng ñi, chỉ một số ít còn ñược nhắc lại cho ñến ngày nay. ðó là các máy tính với những ý tưởng thiết kế và nguyên lý hoạt ñộng ñộc ñáo tạo nên một tầm ảnh hưởng lớn ñến các máy tính thế hệ sau nó. ðể giúp sinh viên có ñược những khái niệm cơ bản về máy tính và hiểu rõ hơn bằng cách nào mà con người ñã phát minh ra những máy tính hiện ñại, dễ sử dụng như ngày nay, trong phần này sẽ trình bày những chi tiết quan trọng về lịch sử quá trình phát triển của máy tính. Máy tính thường ñược phân loại thành các thế hệ dựa trên nền tảng công nghệ phần cứng ñược sử dụng trong quá trình chế tạo. Lịch sử phát triển máy tính có thể ñược chia thành các thế hệ máy tính sau: 1.1.1. Thế hệ zero –máy tính cơ học (1642-1945) Mốc lịch sử máy tính phải nhắc ñến ñầu tiên là khi nhà bác học người Pháp Blez Pascal (1626-1662) vào năm 1642 ñã phát minh ra máy tính toán ñầu tiên – máy tính cơ học với 6 bánh quay và bộ dẫn ñộng bằng tay. Máy của ông chỉ cho phép thực hiện các phép tính cộng và trừ. Sau 30 năm, vào năm 1672 một nhà bác học khác, Gotfrid Vilgelm Leibnits ñã chế tạo ra máy tính với 4 phép tính cơ bản (+ - * /) sử dụng 12 bánh quay. Từ khi còn là sinh viên cho ñến hết cuộc ñời, ông ñã nghiên cứu các tính chất của hệ nhị phân và là người ñã ñưa ra các nguyên lý cũng như khái niệm cơ bản nhất cho hệ nhị Chương I: Giới thiệu 4 phân ñược dùng ngày nay trong máy tính ñiện tử. Năm 1834 giáo sư toán học trường ðH Cambridge (Anh), Charles Babbage (người phát minh ra ñồng hồ công tơ mét) ñã thiết kế ra máy tính với chỉ 2 phép tính + và – nhưng có một cấu trúc ñáng ñể ý thời bấy giờ – máy tính có 4 bộ phận: - bộ nhớ, - bộ tính toán, - thiết bị nhập ñể ñọc các phiếu ñục lỗ, - thiết bị xuất ñể khoan lỗ lên các tấm ñồng. Chính ý tưởng của ông là tiền ñề cho các máy tính hiện ñại sau này. ðể máy tính hoạt ñộng nó cần phải có chương trình, và ông ñã thuê cô Ada làm chương trình cho máy tính này. Cô Ada chính là lập trình viên ñầu tiên và ñể tưởng nhớ tới cô ta sau này Ada ñược ñặt tên cho 1 ngôn ngữ lập trình. Tuy nhiên máy tính ñã không hoạt ñộng ñược vì ñòi hỏi quá phức tạp và thời bấy giờ con người và kỹ thuật chưa cho phép. Năm 1936 К. Zus (người ðức) ñã thiết kế một vài máy ñếm tự ñộng trên cơ sở rơle (relay). Tuy nhiên ông không biết gì về máy tính của Babbage và máy tính của ông ñã bị phá hủy trong một trận bom vào Berlin khi chiến tranh thế giới lần thứ 2 - 1944. Vì vậy những phát minh của ông ta ñã không ảnh hưởng ñến sự phát triển của kỹ thuật máy tính sau này. Năm 1944 G. Iken (thuộc ðH Havard Mỹ) ñã ñọc về công trình của Babbage và ông ñã cho ra ñời Mark I sau ñó là Mark II. Máy Mark I ra ñời với mục ñích chính là phục vụ chiến tranh. Nó nặng 5 tấn, cao 2.4 m, dài 15 m, chứa 800 km dây ñiện. Tuy nhiên vào thời ñiểm ñó máy tính relay ñã qua thời và ñã bắt ñầu kỷ nguyên của máy tính ñiện tử. 1.1.2. Thế hệ I – bóng ñèn ñiện (1945-1955) Chiến tranh thế giới thứ 2 bắt ñầu và vào ñầu thời kỳ chiến tranh tàu ngầm của ðức ñã phá hủy nhiều tàu của Anh, nhờ những Simpo PDF Merge and Split Unregistered Version - Chương I: Giới thiệu 5 tín hiệu mã hóa ñược chuyền ñi bởi thiết bị ENIGMA mà quân ñội Anh ñã không thể giải mã ñược. ðể giải mã ñòi hỏi một số lượng tính toán rất lớn và mất nhiều thời gian, trong khi chiến tranh thì không cho phép chờ ñợi. Vì vậy chính phủ Anh ñã cho thành lập một phòng thí nghiệm bí mật nhằm chế tạo ra một máy tính ñiện phục vụ cho việc giải mã những thông tin này. Năm 1943 máy tính COLOSSUS ra ñời với 2000 ñèn chân không và ñược giữ bí mật suốt 30 năm và nó ñã không thể trở thành cơ sở cho sự phát triển của máy tính. Một trong những người sáng lập ra COLOSSUS là nhà toán học nổi tiếng Alain Turing. Trong hình 1.1 là bức chân dung của Alain Turing và một bóng ñèn chân không. Bóng ñèn chân không Hình 1.1. Alain Turing với bóng ñèn chân không Chiến tranh thế giới ñã có ảnh hưởng lớn ñến phát triển kỹ thuật máy tính ở Mỹ. Quân ñội Mỹ cần các bảng tính toán cho pháo binh và hàng trăm phụ nữ ñã ñược thuê cho việc tính toán này trên các máy tính tay (người ta cho rằng phụ nữ trong tính toán cẩn thận hơn nam giới). Tuy nhiên quá trình tính toán này vẫn ñòi hỏi thời gian khá lâu và nhằm ñáp ứng yêu cầu của BRL (Ballistics Research Laboratory – Phòng nghiên cứu ñạn ñạo quân ñội Mỹ) trong việc tính toán chính xác và nhanh chóng các bảng số liệu ñạn ñạo cho từng loại vũ khí mới, dự án chế tạo máy ENIAC ñã ñược bắt ñầu vào năm 1943. Chương I: Giới thiệu 6 Máy ENIAC (Electronic Numerical Integrator And Computer), do John Mauchly và John Presper Eckert (ñại học Pensylvania, Mỹ) thiết kế và chế tạo, là chiếc máy số hoá ñiện tử ña năng ñầu tiên trên thế giới (hình 1.2). Số liệu kỹ thuật: ENIAC là một chiếc máy khổng lồ với hơn 18000 bóng ñèn chân không, nặng hơn 30 tấn, tiêu thụ một lượng ñiện năng vào khoảng 140kW và chiếm một diện tích xấp xỉ 1393 m2. Mặc dù vậy, nó làm việc nhanh hơn nhiều so với các loại máy tính ñiện cơ cùng thời với khả năng thực hiện 5000 phép cộng trong một giây ñồng hồ. Hình 1.2. Máy tính ENIAC ðiểm khác biệt giữa ENIAC & các máy tính khác: ENIAC sử dụng hệ ñếm thập phân chứ không phải nhị phân như ở tất cả các máy tính khác. Với ENIAC, các con số ñược biểu diễn dưới dạng thập phân và việc tính Simpo PDF Merge and Split Unregistered Version - Chương I: Giới thiệu 7 toán cũng ñược thực hiện trên hệ thập phân. Bộ nhớ của máy gồm 20 "bộ tích lũy", mỗi bộ có khả năng lưu giữ một số thập phân có 10 chữ số. Mỗi chữ số ñược thể hiện bằng một vòng gồm 10 ñèn chân không, trong ñó tại mỗi thời ñiểm, chỉ có một ñèn ở trạng thái bật ñể thể hiện một trong mười chữ số từ 0 ñến 9 của hệ thập phân. Việc lập trình trên ENIAC là một công việc vất vả vì phải thực hiện nối dây bằng tay qua việc ñóng/mở các công tắc cũng như cắm vào hoặc rút ra các dây cáp ñiện. Hoạt ñộng thực tế: Máy ENIAC bắt ñầu hoạt ñộng vào tháng 11/1945 với nhiệm vụ ñầu tiên không phải là tính toán ñạn ñạo (vì chiến tranh thế giới lần thứ hai ñã kết thúc) mà ñể thực hiện các tính toán phức tạp dùng trong việc xác ñịnh tính khả thi của bom H. Việc có thể sử dụng máy vào mục ñích khác với mục ñích chế tạo ban ñầu cho thấy tính ña năng của ENIAC. Máy tiếp tục hoạt ñộng dưới sự quản lý của BRL cho ñến khi ñược tháo rời ra vào năm 1955. Với sự ra ñời và thành công của máy ENIAC, năm 1946 ñược xem như năm mở ñầu cho kỷ nguyên máy tính ñiện tử, kết thúc sự nỗ lực nghiên cứu của các nhà khoa học ñã kéo dài trong nhiều năm liền trước ñó Máy tính Von Neumann Như ñã ñề cập ở trên, việc lập trình trên máy ENIAC là một công việc rất tẻ nhạt và tốn kém nhiều thời gian. Công việc này có lẽ sẽ ñơn giản hơn nếu chương trình có thể ñược biểu diễn dưới dạng thích hợp cho việc lưu trữ trong bộ nhớ cùng với dữ liệu cần xử lý. Khi ñó máy tính chỉ cần lấy chỉ thị bằng cách ñọc từ bộ nhớ, ngoài ra chương trình có thể ñược thiết lập hay thay ñổi thông qua sự chỉnh sửa các giá trị lưu trong một phần nào ñó của bộ nhớ. Ý tưởng này, ñược biết ñến với tên gọi "khái niệm chương trình ñược lưu trữ", do nhà toán học John von Neumann (Hình Chương I: Giới thiệu 8 1.3), một cố vấn của dự án ENIAC, ñưa ra ngày 8/11/1945, trong một bản ñề xuất về một loại máy tính mới có tên gọi EDVAC (Electronic Discrete Variable Computer – do Ekert và Moyshly ñã bắt ñầu làm rồi ngừng lại ñi thành lập công ty, sau này là Unisys Corporation). Máy tính này cho phép nhiều thuật toán khác nhau có thể ñược tiến hành trong máy tính mà không cần phải nối dây lại như máy ENIAC nhờ vào khái niệm chương trình lưu trữ. John von Neumann Hình 1.3. Von Neumann với máy tính EDVAC Máy IAS Tiếp tục với ý tưởng của mình, vào năm 1946, von Neuman cùng các ñồng nghiệp bắt tay vào thiết kế một máy tính mới có chương trình ñược lưu trữ với tên gọi IAS (Institute for Advanced Studies) tại học viện nghiên cứu cao cấp Princeton, Mỹ. Mặc dù mãi ñến năm 1952 máy IAS mới ñược hoàn tất, nó vẫn là mô hình cho tất cả các máy tính ña năng sau này. Cấu trúc tổng quát của máy IAS, như ñược minh họa trên hình 1.4, gồm có: Simpo PDF Merge and Split Unregistered Version - Chương I: Giới thiệu 9 Một bộ nhớ chính ñể lưu trữ dữ liệu và chương trình. Một bộ logic-số học (ALU – Arithmetic and Logic Unit) có khả năng thao tác trên dữ liệu nhị phân. Một bộ ñiều khiển chương trình có nhiệm vụ thông dịch các chỉ thị trong bộ nhớ và làm cho chúng ñược thực thi. Thiết bị nhập/xuất ñược vận hành bởi ñơn vị ñiều khiển. Hầu hết các máy tính hiện nay ñều có chung cấu trúc và chức năng tổng quát như trên. Do vậy chúng còn có tên gọi chung là các máy von Neumann. Hình 1.4. Cấu trúc của máy IAS 1.1.3. Thế hệ II – transistor (1955-1965) Sự thay ñổi ñầu tiên trong lĩnh vực máy tính ñiện tử xuất hiện khi có sự thay thế ñèn chân không bằng ñèn bán dẫn. ðèn bán dẫn nhỏ hơn, rẻ hơn, tỏa nhiệt ít hơn trong khi vẫn có thể ñược sử dụng theo cùng cách thức của ñèn chân không ñể tạo nên máy tính. Không như ñèn chân không vốn ñòi hỏi phải có dây, có bảng kim loại, có bao thủy tinh và chân không, ñèn bán dẫn là một thiết bị ở trạng thái rắn ñược chế tạo từ silicon có nhiều trong cát trong tự nhiên. ðèn bán dẫn là phát minh lớn của phòng thí nghiệm Bell Labs trong năm 1947 bởi Bardeen, Brattain và Shockley. Nó ñã tạo ra một cuộc cách mạng ñiện tử trong những năm 50 của thế kỷ Bộ Logic-số học ALU Bộ ñiều khiển CU Bộ nhớ chính Thiết bị nhập xuất Chương I: Giới thiệu 10 20. Dù vậy, mãi ñến cuối những năm 50, các máy tính bán dẫn hóa hoàn toàn mới bắt ñầu xuất hiện trên thị trường máy tính. Việc sử dụng ñèn bán dẫn trong chế tạo máy tính ñã xác ñịnh thế hệ máy tính thứ hai, với ñại diện tiêu biểu là máy PDP-1 của công ty DEC (Digital Equipment Corporation) và IBM 7094 của IBM. DEC ñược thành lập vào năm 1957 và sau ñó 4 năm cho ra ñời sản phẩm ñầu tiên của mình là máy PDP-1 như ñã ñề cập ở trên. ðây là chiếc máy mở ñầu cho dòng máy tính mini của DEC, vốn rất phổ biến trong các máy tính thế hệ thứ ba. Các máy IBM-709,7090,7094 có chu kỳ thời gian là 2 microsecond, bộ nhớ 32 K word 16 bit. Hình 1.5 mô tả một cấu hình với nhiều thiết bị ngoại vi của máy IBM 7094. Hình 1.5 Một cấu trúc máy IBM 7094 CPU Bộ dồn kênh Memory Kênh dữ liệu Băng từ Kênh dữ liệu Kênh dữ liệu Trống từ Phiếu ñục lỗ Máy in dòng Hypertape Bộ ñọc thẻ ðĩa Simpo PDF Merge and Split Unregistered Version - Chương I: Giới thiệu 11 Ở ñây có nhiều ñiểm khác biệt so với máy IAS mà chúng ta cần lưu ý. ðiểm quan trọng nhất trong số ñó là việc sử dụng các kênh dữ liệu. Một kênh dữ liệu là một module nhập/xuất ñộc lập có bộ xử lý và tập lệnh riêng. Trên một hệ thống máy tính với các thiết bị như thế, CPU sẽ không thực thi các chỉ thị nhập/xuất chi tiết. Những chỉ thị ñó ñược lưu trong bộ nhớ chính và ñược thực thi bởi một bộ xử lý chuyên dụng trong chính kênh dữ liệu. CPU chỉ khởi ñộng một sự kiện truyền nhập/xuất bằng cách gửi tín hiệu ñiều khiển ñến kênh dữ liệu, ra lệnh cho nó thực thi một dãy các chỉ thị trong máy tính. Kênh dữ liệu thực hiện nhiệm vụ của nó ñộc lập với CPU và chỉ cần gửi tín hiệu báo cho CPU khi thao tác ñã hoàn tất. Cách sắp xếp này làm giảm nhẹ công việc cho CPU rất nhiều. Một ñặc trưng khác nữa là bộ ña công, ñiểm kết thúc trung tâm cho các kênh dữ liệu, CPU và bộ nhớ. Bộ ña công lập lịch các truy cập ñến bộ nhớ từ C ... .12. Cấu tạo ô nhớ SRAM và DRAM Chương VIII: Hệ thống bộ nhớ 268 DDR SDRAM (Double Data Rate SDRAM) là cải tiến của bộ nhớ SDRAM với tốc ñộ truyền tải gấp ñôi SDRAM nhờ vào việc truyền tải hai lần trong một chu kỳ bộ nhớ. Tốc ñộ DDR SDRAM ñạt từ 200-400MHz. Trong thời gian gần ñây xuất hiện chuẩn RAM mới dựa trên nền tảng DDR là DDR-II, DDR- III có tốc ñộ cao hơn nhờ cải tiến thiết kế. RDRAM (Rambus RAM) là một loại DRAM ñược thiết kế với kỹ thuật hoàn toàn mới so với kỹ thuật SDRAM. RDRAM hoạt ñộng ñồng bộ theo một hệ thống lặp và truyền dữ liệu theo một hướng. Một kênh bộ nhớ RDRAM có thể hỗ trợ ñến 32 chip DRAM. Mỗi chip ñược ghép nối tuần tự trên một module gọi là RIMM (Rambus Inline Memory Module) nhưng việc truyền dữ liệu giữa các mạch ñiều khiển và từng chíp riêng biệt chứ không truyền giữa các chip với nhau. Bus bộ nhớ RDRAM là ñường dẫn liên tục ñi qua các chip và module trên bus, mỗi module có các chân vào và ra trên các ñầu ñối diện. Do ñó, nếu các khe cắm không chứa RIMM sẽ phải gắn một module liên tục ñể ñảm bảo ñường truyền ñược nối liền. Tốc ñộ RDRAM ñạt từ 400-800MHz 8.4. BỘ NHỚ ẢO Người ta ñã sử dụng cơ chế bộ nhớ ảo nhằm giải quyết vấn ñề về kích thước bộ nhớ vật lý không ñủ chứa cả hệ ñiều hành cùng với các chương trình của người sử dụng, ñồng thời vấn ñề các vùng nhớ phải ñược bảo vệ một cách chắc chắn ñể khỏi bị chương trình của người sử dụng làm hỏng. Bộ nhớ ảo có ñược dựa trên sự kết hợp các bộ nhớ với tốc ñộ rất cao như bộ nhớ trong (RAM) và bộ nhớ có tốc ñộ chậm như bộ nhớ phụ ( ổ ñĩa cứng), hoạt ñộng dưới sự quản lý của MMU, sao cho dưới quan ñiểm của người lập trình và ñối với người sử dụng thì tập hợp các bộ nhớ trên ñược quan niệm là một bộ nhớ thuần nhất với dung lượng lớn (gần hoặc bằng dung lượng ổ ñĩa cứng) nhưng lại làm việc ở tốc ñộ cao (gần bằng tốc ñộ bộ nhớ trong). Simpo PDF Merge and Split Unregistered Version - Chương VIII: Hệ thống bộ nhớ 269 Cấu trúc phân cấp bộ nhớ ñược minh họa như sơ ñồ hình 8.13. Bộ nhớ ảo có thể ñược quản lý bằng cách chia bộ nhớ thành các mảng nhỏ có ñộ lớn tính theo ñoạn, cơ chế này gọi là phân ñoạn (ñối với họ Intel có từ các bộ VXL 80286 trở ñi) hoặc trang, cơ chế này gọi là phân trang ( ñối với họ Intel có từ các bộ VXL 80386) trở ñi. Trong bộ nhớ ảo như vậy, từng mảng mã lệnh và mảng dữ liệu dùng cho chương trình hiện tại ñược tải từ ổ ñĩa vào bộ nhớ trong (RAM) và ñược truy nhập ñến bởi bộ ñiều khiển của bộ nhớ khi cần thiết. Nếu chương trình ñang chạy cần ñến một mảng mã lệnh hay một mảng dữ liệu nào ñó mà không chứa trong RAM thì nó sẽ ñược tải vào RAM. Nếu RAM không còn ñủ không gian ñể chứa thì một mảng nào ñó của RAM sẽ ñược xác ñịnh theo các tiêu chuẩn nhất ñịnh ñể bị ñẩy lại ổ ñĩa, nhường chỗ cho mảng ñang cần lấy vào. Cách hoạt ñông của bộ nhớ ảo giữa bộ nhớ chính và bộ nhớ phụ rất giống nguyên lý hoạt ñông giữa bộ nhớ cache và bộ nhớ chính mà ta ñã trình bày trong phần trên. Bộ nhớ RAM ñóng vai trò là bộ nhớ chứa bản sao của một phần bộ nhớ phụ, bộ nhớ cache dóng vai trò là bộ nhớ chứa bản sao của một phần bộ nhớ chính. Tuy có nguyên lý hoạt ñông giống nhau nhưng sự khác biệt lớn nhất là khi thất bại cache, sự thay thế một khối trong cache ñược ñiều khiển bằng phần cứng, trong khi sự thay thế trong bộ nhớ ảo là chủ yếu do hệ ñiều hành. Ngoài ra khi thất bại cache thì thời gian bị phạt chỉ tương ñương với khoảng 5-10 lần trong trường hợp thành Chương VIII: Hệ thống bộ nhớ 270 công cache, trong khi nếu có lỗi trang thì có thể phải mất một thời gian gấp 1000 lần khi không có lỗi trang. Trong các máy tính hiện ñại 1 ñoạn có thể có ñộ lớn từ 1 byte ñến 4GB còn 1 trang thông thường có ñộ lớn từ 2KB ñến 16 K bytes. ðể truy cập ñến bộ nhớ ảo ta dùng ñịa chỉ ảo (ñịa chỉ lôgic), còn truy nhập ñến bộ nhớ vật lý ta phải dùng ñịa chỉ vật lý. Khi cần truy cập ñến một ñoạn dữ liệu nào ñó thì CPU phát ra một yêu cầu truy cập ñến một ñịa chỉ, ñó chính là ñịa chỉ ảo. MMU nhận ñịa chỉ ảo và dịch (chuyển ñổi) nó ra ñịa chỉ vật lý, ñịa chỉ này ñược ñưa lên bus ñịa chỉ ñể truy nhập bộ nhớ vật lý. Tương tự như khi làm việc với cache, ñể hiểu rõ nguyên lý vận hành của bộ nhớ ảo, ta cũng phải trả lời ñược 4 câu hỏi cơ bản sau: - Một khối bộ nhớ ngoài sẽ ñược ñặt tại ñâu trong bộ nhớ trong? - Làm thế nào ñể tìm một khối khi nó ñang nằm trong bộ nhớ trong? - Khối nào phải ñược thay thế khi có thất bại trang? - Việc gì xảy ra khi cần ghi số liệu? ðể ñặt một khối nhớ vào trong bộ nhớ trong cũng có 3 kỹ thuật là tương ứng trực tiếp, hoàn toàn phối hợp và phối hợp theo tập hợp. Việc trừng phạt bộ nhớ ảo khi có thất bại, tương ứng với việc phải thâm nhập vào ổ ñĩa. Việc thâm nhập này rất chậm nên người ta chọn phương án hoàn toàn phối hợp trong ñó các khối (trang) có thể nằm ở bất kỳ vị trí nào trong bộ nhớ trong. Cách này cho tỉ lệ thất bại thấp. ðể tìm một khối nhớ ta cần phân biệt hai dạng ñịnh vị, ñó là ñịnh vị trang và ñịnh vị ñoạn. ðịa chỉ phát ra bởi CPU là ñịa chỉ ảo và trong cả hai loại ñịnh vị, ñịa chỉ này ñều chứa một trường ñể lưu số thứ tự trang hoặc số thứ tự ñoạn. Simpo PDF Merge and Split Unregistered Version - Chương VIII: Hệ thống bộ nhớ 271 Trong trường hợp ñịnh vị trang, dựa vào bảng trang, ñịa chỉ trong bộ nhớ vật lý ñược xác ñịnh bằng cách ñặt kề nhau số thứ của trang vật lý với ñịa chỉ trong trang như trong hình 8.14. Trong trường hợp ñịnh vị ñoạn, dựa vào thông tin trên bảng ñoạn, việc kiểm tra tính hợp lệ của ñịa chỉ ñược tiến hành. ðịa chỉ vật lý ñược xác ñịnh bằng cách cộng ñịa chỉ ñoạn và ñộ dời trong ñoạn như trong hình 8.15. Khi có thất bại trang thì khối cần ñược thay thế sẽ tuân theo các chiến thuật thay thế trang giống như các chiến thuật thay thế khối trong cache gồm có: Thay thế ngẫu nhiên, Khối xưa nhất, Vào trước ra trước, Tần số sử dụng ít nhất. tuy nhiên hầu hết các hệ ñiều hành ngày nay ñều cố gắng dùng chiến thuật thay thế khối ít dùng gần ñây nhất (LRU: Least Recent Utilized) vì cho rằng ñây là khối ít cần nhất. ðối với chiến thuật trong bộ nhớ ảo thì luôn sử dụng chiến thuật ghi lại (write-back), nghĩa là thông tin chỉ ñược viết vào trong CPU p d f f d Bộ nhớ vật lý ðịa chỉ ảo ðịa chỉ vật lý Hình 8.14. Ánh xạ ñịa chỉ ảo sang ñịa chỉ vật lý trong ñịnh vị trang p – chỉ số trang d – ñộ dời trang f – chỉ số khung trang (frame) Chương VIII: Hệ thống bộ nhớ 272 khối của bộ nhớ trong. Khối có thay ñổi thông tin, ñược chép vào ñĩa từ nếu khối này bị thay thế. • TỔNG KẾT Trong chương này ñã trình bày các kiến thức cơ bản về tổ chức bộ nhớ trong máy tính. Qua ñó cho thấy sự khác biệt giữa các loại bộ nhớ trong máy tính và các kỹ thuật kết hợp các loại bộ nhớ, từ bộ nhớ lớn chậm, ñến các bộ nhớ rất nhỏ nhưng cực nhanh thành một không gian nhớ chung với tốc ñộ cao và giá cả phải chăng. Ngoài ra còn cung cấp các kiến thức về thiết kế và cấu tạo của các loại bộ nhớ, qua ñó cung cấp cho sinh viên các hiểu biết cơ bản về hệ thống bộ nhớ trong máy tính. CPU s d Limit Bộ nhớ trong ðịa chỉ Vật lý Hình 8.15. Ánh xạ ñịa chỉ ảo sang ñịa chỉ vật lý trong ñịnh vị ñoạn s – chỉ số ñoạn d – ñộ dời ñoạn Limit – Giới hạn tối ña của ñoạn Base – ñịa chỉ cơ sở của ñoạn Base < + ðúng Sai TRAP Simpo PDF Merge and Split Unregistered Version - Chương VIII: Hệ thống bộ nhớ 273 CÂU HỎI VÀ BÀI TẬP CHƯƠNG VIII 1. Mục tiêu chính của các cấp bộ nhớ trong máy tính là gì? Vẽ sơ ñồ các cấp bộ nhớ cơ bản. 2. Tính thời gian truy cập trung bình của một hệ thống bộ nhớ có 3 cấp: cache, bộ nhớ trong và bộ nhớ phụ nếu thời gian truy cập vào từng loại bộ nhớ tương ứng là 20 ns, 100 ns và 1 ms biết rằng tỷ số thành công của cache là 90% và bộ nhớ trong là 95%. 3. Hãy xác ñịnh số bit của các trường trong ñịa chỉ bộ nhớ trong ở ví dụ 1 trong 3 trường hợp ánh xạ. Trong trường hợp phối hợp theo tập hợp, giả sử mỗi tập hợp gồm 2 khối nhớ. 4. Nêu và giải thích các nguyên tắc vận hành của cache. 5. Vẽ sơ ñồ chuyển ñổi ñịa chỉ cho ví dụ 2 trong trường hợp phối hợp hoàn toàn như trên hình 8.7 và giải thích cơ chế hoạt ñộng của nó. 6. Vẽ sơ ñồ chuyển ñổi ñịa chỉ cho ví dụ 2 trong trường hợp phối hợp theo tập hợp nếu mỗi tập hợp gồm 4 khối như trên hình 8.7 và giải thích cơ chế hoạt ñộng của nó. 7. Cho một bộ nhớ cache tương ứng trực tiếp có 8 khối, mỗi khối có 16 byte. Bộ nhớ trong có 64 khối. Giả sử lúc khởi ñộng máy, 8 khối ñầu tiên của bộ nhớ trong ñược ñưa lên cache. a. Viết bảng nhãn của các khối hiện ñang nằm trong cache b. CPU lần lượt ñưa các ñịa chỉ sau ñây ñể ñọc số liệu: O4AH, 27CH, 3F5H. Nếu thất bại thì cập nhật bãng nhãn. c. CPU dùng cách ghi lại. Khi thất bại cache, CPU dùng cách ghi có nạp. Mô tả công việc của bộ quản lý cache khi CPU ñưa ra các từ sau ñây ñể ghi vào bộ nhớ trong: 0C3H, 05AH, 1C5H. Chương VIII: Hệ thống bộ nhớ 274 8. Hãy nêu các nguyên nhân chính gây thất bại cache và cách hạn chế nó? 9. Xét một ma trận số có kích thước 4x8. Giả sử mỗi số ñược lưu trong một từ và các phần tử của ma trận ñược lưu theo thứ tự cột trong bộ nhớ từ ñịa chỉ 1000 ñến ñịa chỉ 1031. Bộ nhớ cache gồm 8 khối với mỗi khối chứa ñược 2 từ. Ta cũng giả sử dùng chiến thuật thay thế khối là LRU. Hãy khảo sát sự thay ñổi trong cache (sự thay ñổi trong các khối nhớ trong cache) trong 3 kỹ thuật tổ chức bộ nhớ nếu CPU yêu cầu truy cập lần lượt ñến các phần từ theo thứ tự sau: a0,0, a0,1, a0,2, a0,3, a0,4, a0,5, a0,6, a0,7 a1,0, a1,1, a1,2, a1,3, a1,4, a1,5, a1,6, a1,7 10. Hãy cho biết sự khác nhau giữa SRAM và DRAM? 11. Tại sao phải dùng bộ nhớ ảo?cho biết sự khác biệt cơ bản giữa cache và bộ nhớ ảo? Simpo PDF Merge and Split Unregistered Version - Kiến trúc máy tính – Vũ ðức Lung 275 PHỤ LỤC Trang Lời nói ñầu 1 Chương I: Giới thiệu 3 1.1. Lịch sử phát triển của máy tính 1.1.1. Thế hệ zero-máy tính cơ học (1642-1945) 1.1.2. Thế hệ I – bóng ñèn ñiện (1945-1955) 1.1.3. Thế hệ II – transistor (1955-1965) 1.1.4. Thế hệ III – mạch tích hợp (1965-1980) 1.1.5. Thế hệ IV – máy tính cá nhân (1980-ñến nay) 1.2. Khối các nước XHCN và Việt Nam 1.3. Khuynh hướng hiện tại 1.4. Phân loại máy tính 1.5. Các dòng Intel Câu hỏi và bài tập chương I 3 3 4 9 13 16 18 21 23 24 31 Chương II: Các bộ phận cơ bản của máy tính 32 2.1. Bộ xử lý (CPU) 2.2. Bản mạch chính (Mainboard) 2.3. Ổ ñĩa mềm (FDD) 2.4. Ổ ñĩa cứng (HDD) 2.5. Ổ CD và DVD 2.6. Bộ nhớ RAM và ROM 2.7. Bàn phím (Keyboard) 2.8. Chuột (Mouse) 2.9. Card màn hình (VGA Card) 2.10. Màn hình (Monitor) 2.11. Card mạng (Network adapter) và Modem Câu hỏi và bài tập chương II 32 41 48 50 53 55 59 60 63 66 74 76 Chương III: Biểu diễn dữ liệu 77 3.1. Khái niệm thông tin 77 Kiến trúc máy tính – Vũ ðức Lung 276 3.2. Lượng thông tin và sự mã hóa thông tin 3.3. Hệ thống số 3.4. Các phép tính số học cho hệ nhị phân 3.4.1. Phép cộng nhị phân không dấu 3.4.2. Phép trừ nhị phân không dấu 3.4.3. Phép nhân và chia hai số nhị phân không dấu 3.4.4. Biểu diễn số nguyên có dấu 3.4.5. Số bù của một số 3.4.6. Phép cộng trừ nhị phân dùng bù 1 3.4.7. Phép cộng trừ nhị phân dùng bù 2 3.5. Số quá n (excess-n) 3.6. Cách biểu diễn số với dấu chấm ñộng 3.7. Biểu diễn số BCD 3.8. Biểu diễn các ký tự Câu hỏi và bài tập chương III 78 79 85 85 86 87 88 89 92 93 94 95 98 100 101 Chương IV: Mạch Logic số 103 4.1. Cổng và ñại số Boolean 4.1.1. Cổng (Gate) 4.1.2. ðại số Boolean 4.2. Bản ñồ Karnaugh 4.3. Những mạch Logic số cơ bản 4.3.1. Mạch tích hợp (IC-Intergrate Circuit) 4.3.2. Mạch kết hợp (Combinational Circuit) 4.3.3. Bộ dồn kênh-bộ phân kênh 4.3.4. Mạch cộng (Adder) 4.3.5. Mạch giải mã và mã hóa Câu hỏi và bài tập chương IV 103 103 108 122 135 135 137 138 142 144 151 Chương V: Mạch tuần tự 155 5.1. Xung ñồng hồ 5.2. Mạch lật (chốt – latch) 5.2.1. Mạch lật SR (SR-latch) 5.2.2. Mạch lật D 5.2.3. Mạch lật JK 5.3.4. Mạch lật T 155 156 157 160 161 161 Si m po P DF M er ge a nd S pl it Un re gi st er ed V er sio n - h ttp :// ww w. sim po pd f.c om Kiến trúc máy tính – Vũ ðức Lung 277 5.3. Mạch lật lề (Flip-flop) 5.4. Mạch tuần tự Bài tập chương V 162 165 173 Chương VI: Kiến trúc bộ lệnh 175 6.1. Phân loại kiến trúc bộ lệnh 6.2. ðịa chỉ bộ nhớ 6.3. Mã hóa tập lệnh 6.3.1. Các tiêu chuẩn thiết kế dạng thức lệnh 6.3.2. Opcode mở rộng 6.3.3. Ví dụ về dạng thức lệnh 6.3.4. Các chế ñộ lập ñịa chỉ 6.4. Bộ lệnh 6.4.1. Nhóm lệnh truyền dữ liệu 6.4.2. Nhóm lệnh tính toán số học 6.4.3. Nhóm lệnh Logic 6.4.4. Nhóm các lệnh dịch chuyển 6.4.5. Nhóm các lệnh có ñiều kiện và lệnh nhảy 6.5. Cấu trúc lệnh CISC và RISC Câu hỏi và bài tập chương VI 175 179 181 182 184 187 191 201 203 204 206 207 209 212 216 Chương VII: Tổ chức bộ xử lý 218 7.1. Tổ chức bộ xử lý trung tâm 7.2. Bộ ñiều khiển 7.3. Bộ thanh ghi 7.4. ðường ñi dữ liệu (Datapath) 7.4.1. Tổ chức One-Bus 7.4.2. Tổ chức Two-Bus, Three-Bus 7.5. Diễn tiến thi hành lệnh mã máy 7.6. Xử lý ngắt (Interrupt Handling) 7.7. Kỹ thuật ống dẫn (Pipeline) Câu hỏi và bài tập chương VII 218 221 224 227 228 229 231 236 238 244 Chương VIII: Hệ thống bộ nhớ 245 8.1. Các cấp bộ nhớ 8.2. Bộ nhớ cache (Cache memory) 8.2.1. Tồ chức bộ nhớ cache 245 248 251 Kiến trúc máy tính – Vũ ðức Lung 278 8.2.2. Kỹ thuật thay thế khối nhớ 8.2.3. Chiến thuật ghi 8.2.4. Các loại cache 8.3. Bộ nhớ trong (Main memory) 8.4. Bộ nhớ ảo (Virtual memory) Câu hỏi và bài tập chương VIII 259 260 262 263 268 273 Phụ lục Tài liệu tham khảo 275 279 Si m po P DF M er ge a nd S pl it Un re gi st er ed V er sio n - h ttp :// ww w. sim po pd f.c om Kiến trúc máy tính – Vũ ðức Lung 279 TÀI LIỆU THAM KHẢO 1. Nguyễn Minh Tuấn, Kiến trúc máy tính (giáo trình lược giản), V3.7, Trường ðH Khoa học tự nhiên tp. HCM 2. Cấu trúc máy tính cơ bản, tổng hợp và biên dịch VN-Guide, nhà xuất bản thống kê. 3. Võ ðức Khánh ,Kiến trúc máy tính, ThS. Võ ðức Khánh 4. Võ Văn Chín, Nguyễn Hồng Vân, Phạm Hữu Tài. Giáo trình kiến trúc máy tính. ðH Cần Thơ, 2003. 5. M. Abd-El-Barr, H. El-Rewini, Fundamentals of Computer Organization and Architecture, Wiley, 2005 6. Patterson, D. A., and J. L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 3rd ed. San Mateo, CA: Morgan Kaufman, 2004 7. Robert Bruce Thompson, Barbara Fritchman Thompson, Repairing and Upgrading Your PC, O’Reilly, 2006 8. William Stallings. Computer Organization & Architecture (Designing for performance), Sixth edition, Pearson Education, 2003 9. M. Abd-El-Barr, H. El-Rewini, Advanced Computer Architecture and Parallel Processing, Wiley, 2005 Si m po P DF M er ge a nd S pl it Un re gi st er ed V er sio n - h ttp :// ww w. sim po pd f.c om
File đính kèm:
- giao_trinh_kien_truc_may_tinh_vu_duc_lung.pdf