1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Cấu trúc máy tính

126 1,6K 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 126
Dung lượng 1,51 MB

Nội dung

Giáo trình Cấu trúc máy tính

Trang 1

GIÁO TRÌNH

CẤU TRÚC MÁY TÍNH

NGUYỄN HỮU LỘC

2000

Trang 2

MỤC LỤC

Chương 1: GIỚI THIỆU CHUNG 5

I NGÔN NGỮ VÀ MÁY ẢO, MÁY TÍNH NHIỀU CẤP: 5

II PHẦN CỨNG VÀ PHẦN MỀM: 7

III LỊCH SỬ PHÁT TRIỂN MÁY TÍNH: 8

1 Thế hệ không: 8

2 Thế hệ thứ nhất: 9

3 Thế hệ thứ hai: 10

4 Thế hệ thứ ba: 10

5 Thế hệ thứ tư: 11

Chương 2: CẤU TRÚC CHUNG MÁY TÍNH 15

I CÁC BỘ XỬ LÝ 15

1 Thực hiện lệnh 16

2 Tổ chức CPU 17

3 Thực hiện lệnh song song: 18

II- BỘ NHỚ CHÍNH: 22

1 Bit 22

2 Địa chỉ bộ nhớ: 23

3 Trật tự của byte: 24

4 Mã sửa lỗi: 25

5 Bộ nhớ chính trong các IBM PC 26

III- CÁC THIẾT BỊ LƯU TRỮ (BỘ NHỚ PHỤ): 28

1 Băng từ: 28

2 Đĩa từ 29

3 Đĩa mềm 32

4 Đĩa quang 33

IV - CÁC THIẾT BỊ VÀO / RA 35

1 Bàn phím: 38

2 Màn hình: 38

3 Modem: 41

4 Chuột: 45

5 Máy in : 48

6 Ngõ ra nối tiếp chuẩn RS–232–C 54

Chương 3: LỚP VẬT LÝ 57

I CÁC CHIP VI XỬ LÝ VÀ CÁC BUS 57

1 Các chip vi xử lý: 57

2 Các bus của máy tính 60

3 Bus đồng bộ 62

4 Bus không đồng bộ 65

5 Phân xử bus 67

II THÍ DỤ VỀ CHIP VI XỬ LÝ VÀ BUS 71

Trang 3

1 Chip vi xử lý 8088 của họ Intel 71

2 Thí dụ về bus 74

III Bộ nhớ 76

1 Phân loại bộ nhớ bán dẫn 77

2 Tổ chức bộ nhớ: 77

3 Một số khái niệm về bộ nhớ khác: 79

IV Giao tiếp 81

1 Các chip I/O 81

2 Giải mã địa chỉ 82

Chương 4 LỚP VI CHƯƠNG TRÌNH 85

I NHẮC LẠI LỚP VẬT LÝ: 86

1 Các thanh ghi: 86

2 Bus nội: 86

II MỘT VÍ DỤ VỀ VI CHƯƠNG TRÌNH: 88

Chương 4: LỚP VI CHƯƠNG TRÌNH 90

I NHẮC LẠI LỚP VẬT LÝ: 91

1 Các thanh ghi: 91

2 Bus nội: 91

II MỘT VÍ DỤ VỀ VI CHƯƠNG TRÌNH: 93

Chương 5: LỚP MÁY QUY ƯỚC 95

I CÁC THÍ DỤ VỀ LỚP MÁY QUI ƯỚC: 95

II CÁC KHUÔN DẠNG LỆNH 101

III KIỂU ĐỊNH VỊ ĐỊA CHỈ : 102

1 Định địa chỉ tức thời: 103

2 Định địa chỉ trực tiếp 103

3 Định địa chỉ thanh ghi 104

4 Định địa chỉ gián tiếp 105

5 Định chỉ số 106

6 Định địa chỉ ngăn xếp 107

III LUỒNG ĐIỀU KHIỂN 108

1 Luồng điều khiển tuần tự và các lệnh nhảy 108

2 Thủ tục 109

3 Đồng thủ tục 109

4 Bẫy 110

5 Ngắt 110

Chương 6: LỚP MÁY HỆ ĐIỀU HÀNH 112

I BỘ NHỚ ẢO 113

II CÁC LỆNH VÀO/RA ẢO 117

1 Các tập tin tuần tự 117

2 Các tập tin truy xuất ngẫu nhiên 119

3 Hiện thực các lệnh vào/ra ảo 120

Trang 4

4 Các lệnh quản lý thư mục 124 III CÁC LỆNH ẢO DÙNG TRONG XỬ LÝ SONG SONG 125

Trang 5

CHƯƠNG 1:

GIỚI THIỆU CHUNG

Máy tính số là thiết bị có khả năng giải các bài toán bằng cách thực hiện một số lệnh hữu hạn Chương trình máy tính gồm một dãy lệnh sắp xếp theo một trình tự nhất định để thực hiện một việc cho trước Những linh kiện điện tử trong mỗi máy tính chỉ có thể nhận biết và thực hiện trực tiếp một số lệnh hữu hạn và một chương trình máy tính chỉ có thể thực hiện trên máy tính đó nếu sử dụng chính số lệnh hữu hạn đó

Tập lệnh mà máy tính thực hiện trực tiếp tạo ra một ngôn ngữ cho phép người sử dụng trao đổi được với máy tính Đó là ngôn ngữ máy Khi chế tạo ra một máy tính mới, người ta tạo ra các lệnh, hình thành ngôn ngữ máy Thông thường người ta có khuynh hướng chọn các lệnh này càng đơn giản càng tốt để hạn chế mức độ phức tạp (và dĩ nhiên là giá thành ) của các linh kiện điện tử cần thiết Khó khăn là các ngôn ngữ máy này còn quá nguyên sơ nên rất khó sử dụng

I NGÔN NGỮ VÀ MÁY ẢO, MÁY TÍNH NHIỀU CẤP:

Có 2 cách để giải quyết vấn đề này Thực tế là cả hai cách này đều nhằm đưa vào một tập lệnh mới dễ sử dụng hơn ngôn ngữ máy Tập lệnh mới này tạo thành một ngôn ngữ mới (ngôn ngữ L2) là tập các lệnh khác lệnh máy (ngôn ngữ L1 )

Cách thứ nhất để thực hiện chương trình viết bằng L2 là dịch lệnh của chương trình thành dãy các lệnh tương đương L1 Máy tính sẽ thực hiện chương trình mới bằng L1 thay vì L2 Kỹ thuật này gọi là biên dịch (compile)

Cách thứ 2 là từng lệnh của chương trình viết bằng L2 sẽ được thực hiện tương ứng với một dãy các lệnh L1 Kỹ thuật này không cần tạo ra toàn bộ một chương trình L1 nên gọi là phiên dịch (interpret)

Hai khái niệm biên dịch và phiên dịch mới đầu có vẽ hơi giống nhau Nhìn chung, lệnh trong L2 sẽ được chuyển thành một dãy lệnh trong L1 để thực hiện Song phải thấy rằng trong trường hợp biên dịch tất cả chương trình L2 sẽ phải dịch sang L1 sau đó chương trình L1 thực hiện Còn với phiên dịch thì mỗi lệnh trong chương trình L2 được phân tích rồi thực hiện ngay và như vậy dường như không tồn tại chương trình dịch Cả hai cách đều được sử dụng rộng rãi

Với ngôn ngữ L2 có thể hình dung đến một máy tính gọi là máy ảo

Để biên dịch và phiên dịch được đơn giản, các ngôn ngữ L1 và L2 không nên quá khác nhau Nghĩa là L2, thường hay hơn L1, vẫn không phải là một ngôn ngữ lập trình

Trang 6

lý tưởng Điều này có vẽ như trái ngược với ý tưởng ban đầu khi tạo ra ngôn ngữ L2: tạo một ngôn ngữ đơn giản và dễ sử dụng cho con người hơn L1 là ngôn ngữ của máy

Như vậy người ta lại định nghĩa một tập lệnh mới gần guĩ với người sử dụng hơn và ít phụ thuộc hơn vào máy tính như L2 Những lệnh mới này tạo ra một ngôn ngữ L3 nhờ vậy có thể viết các chương trình cho máy tính ảo dùng ngôn ngữ L3 Những chương trình này chắc chắn sẽ được dịch ra L2

Người ta có thể tạo ra một chuỗi các ngôn ngữ, loại sau dễ sử dụng hơn so với loại trước Mỗi ngôn ngữ mới dựa vào ngôn ngữ đã có trước đó, do vậy người ta xem máy tính như một chồng các lớp (cấp) như trình bày trong hình 1.1 Ngôn ngữ ở lớp dưới đơn giản, càng lên lớp trên ngôn ngữ càng phức tạp

Đa số các máy tính hiện nay có ít nhất 2 cấp Thường chúng ta thấy các máy tính có 6 cấp

Cấp 0: Lớp vật lý Đó là phần cứng gồm các cửa logic, các cổng (cảng) v.v… Chúng ta sẽ đi sâu vào cấp 0 trong giáo trình này

Máy ảo M3,Ngôn ngữ L3

Máy ảo Mn,Ngôn ngữ Ln Cấp n

Cấp 3

Máy thực M1,Ngôn ngữ máy L1

Máy ảo M2,Ngôn ngữ L2 Cấp 2

Cấp 1

Hình 1.1: Kiến trúc máy tính nhiều cấp Cấp 1: Lớp vi chương trình Khác với cấp 0, trong cấp này ta thấy có chương trình gọi là vi chương trình dùng để phiên dịch những lệnh ở cấp 2

Trang 7

Cấp 2: Lớp máy qui ước Thường ở lớp này tất cả các máy tính đều có những điểm giống nhau dù chúng được tạo bởi những nhà sản xuất khác nhau Các nhà sản xuất đều cung cấp kèm theo máy "Sổ tay ngôn ngữ máy" trong đó có tập lệnh riêng của từng máy

Cấp 3: Lớp hệ điều hành Có thể xem đây là một lớp lai (hybrid) Ngoài một số các lệnh đã biết (có trong cấp 2 ) trong lớp này còn xuất hiện nhiều lệnh đặc biệt như tổ chức quản lý bộ nhớ, khả năng thực hiện nhiều lệnh song song v.v…

Cấp 4: Lớp hợp ngữ Dùng những từ gợi nhớ để lập trình do vậy thuận tiện hơn Cấp 5: Lớp ứng dụng: Dùng ngôn ngữ cấp cao để lập trình

Người ta có thể có cấp 6 hoặc cấp cao hơn cho những ứng dụng cụ thể được xem là công cụ cho các lĩnh vực chuyên ngành

Có thể thấy tồn tại một khoảng cách rất lớn giữa cấp 3 và cấp 4 Những nhà lập trình hệ thống thường chú ý đến các cấp thấp (từ cấp 3 trở xuống), trong khi ấy với những nhà lập trình ứng dụng lại quan tâm đến những cấp cao hơn (từ cấp 4 lên) Ngôn ngữ sử dụng ở cấp 1,2,3 là ngôn ngữ số trong khi ấy từ cấp 4 người ta sử dụng những từ, những chữ viết tắt dễ hiểu hơn với con người Hơn thế phương pháp để hỗ trợ các cấp trên là khác nhau: Cấp 2 và 3 thường được phiên dịch, còn cấp 4 và 5 thường là biên dịch (điều này không phải luôn đúng)

II PHẦN CỨNG VÀ PHẦN MỀM:

Những chương trình viết bằng ngôn ngữ máy đều có thể thực hiện trực tiếp bằng các mạch điện tử mà không cần phải biên dịch hay phiên dịch Các mạch điện tử này kết hợp với các phần tử cơ khí, các dây nối gọi chung là phần cứng Như vậy phần cứng là những gì có thể sờ thấy được như các mạch tích hợp, các bảng mạch, dây nối, nguồn nuôi, bộ nhớ, máy in, thiết bị đầu cuối v.v… khác với những gì không sờ thấy được như các ý tưởng trừu tượng, các thuật toán hoặc các lệnh

Như vậy phần mềm gồm các thuật toán và cách thể hiện chúng bằng lệnh: các chương trình Những chương trình này được cất giữ trên những thiết bị lưu trữ như đĩa từ, đĩa quang…

Có lập luận cho rằng phần cứng và phần mềm tương đương với nhau về mặt logic (hardware and software are logically equivalent) Bất kỳ một phép toán nào đó giải được bằng phần mềm đều có thể thực hiện trực tiếp bằng phần cứng và bất kỳ một lệnh nào đó thi hành bằng phần cứng đều có thể mô phỏng bằng phần mềm Ranh giới giữ phần cứng và phần mềm thường xuyên thay đổi Có những cái hôm nay thực hiện bằng phần mềm, ngày mai lại thực hiện bằng phần cứng và ngược lại Hơn thế nữa ngày càng thấy rằng ranh giới giữ các lớp máy tính ngày càng không rõ ràng Song

Trang 8

việc phân định các lớp giúp cho người làm việc với máy tính tại 1 lớp n nào đó sẽ không cần biết nhiều đến chi tiết các lớp dưới Như vậy việc ứng dụng máy tính ngày càng dễ dàng mặc dầu chúng ngày càng phức tạp

III LỊCH SỬ PHÁT TRIỂN MÁY TÍNH:

1 Thế hệ không:

Những máy tính cơ và điện từ (1642-1945)

Blaise Pascal (1623-1662) là người có công chính trong việc tạo ra máy làm toán đầu tiên, chính vì lý do này mà về sau Niklaus Wirth đã lấy tên Pascal đặt cho ngôn ngữ lập trình mà ông đã sáng tạo nên Năm 1642 lúc ấy Pascal mới 19 tuổi đã tạo ra một máy hoàn toàn bằng cơ khí điều khiển bằng tay và thực hiện được phép cộng và phép trừ 30 năm sau, Baron Gottfried von Leibniz (1646-1716) thêm vào phép nhân và phép chia và đó chính là tiền thân của máy tính bỏ túi (calculator) ngày nay của chúng ta

Mãi đến 150 năm sau đóù Charles Babbage (1792-1871), giáo sư toán tại Đại học Cambridge, đã thiết kế và xây dựng được máy sai phân (difference engine) Máy chỉ tính toán với một thuật toán đơn, phương pháp sai phân hữu hạn sử dụng các đa thức Máy này hoạt động tốt tuy vậy Babagge mong thực hiện được với nhiều thuật toán khác hơn và ông đã để nhiều thời gian nghiên cứu tạo ra 1 máy tính mới, máy phân tích (analytical engine) Máy này gồm bốn bộ phận: Quầy bán hàng (Bộ nhớ); cối xây (Bộ tính toán), ngõ vào (Bộ đọc bìa đục lỗ) và ngõ ra (bộ xuyên bìa hay máy in) Cối xây nhận các toán hạng từ quầy bán hàng sau đó thực hiện cộng, trừ, nhân, chia và chuyển kết quả về quầy bán hàng Tất cả đều thực hiện bằng cơ khí Cái mới trong máy này là nó đọc các lệnh từ bìa đục lỗ và xử lý chúng Máy này được lập trình nhờ

1 ngôn ngữ đơn giản gọi là hợp ngữ Ada Augusta Lovelace, con gái của một nhà thơ Anh tên Lord Byron và cũng là người trợ lý của Babagge là người đầu tiên viết chương trình cho máy tính Vì vậy sau này Bộ quốc phòng Hoa kỳ đã lấy tên Ada để đặt cho một ngôn ngữ lập trình do nhóm Bull tạo ra

Tuy nhiên Babbage không thể tạo ra cái máy hoàn toàn như ý vì công nghệ thế kỷ thứ XIX đã không đáp ứng được Tuy vậy những ý tưởng của Babagge đã đặt nền móng cho máy tính điện tử ngày nay, cũng chính vì vậy nên có thể xem Babbage là Ông tổ của ngành máy tính hiện nay

Trong những năm 1930 một kỹ sư Đức tên Konrad Zuse đã tạo ra một số máy tính làm bằng rơ le điện từ dù chưa biết đến công trình của Babagge Rất tiếc là tất cả các máy này đều đã bị phá hũy trong những đợt ném bom xuống Berlin năm 1944 Song vẫn có thể xem ông là một trong những người tiên phong chế tạo ra máy tính Tại Hoa kỳ, John Atanassoff thuộc Iowa State College và George Stibbitz thuộc Bell Labs đã chế tạo ra các máy tính Nếu như máy của Atanassoff không chạy được như mong muốn thì máy của Stibbitz với yêu cầu thấp hơn đã hoạt động tốt và được giới thiệu năm 1940 tại Dartmouth College Một trong những phụ tá của Stibbitz, John Mauchley là giáo sư vật lý tại Đại học Pennsylvania mà chúng ta sẽ đề cập sau Cùng

Trang 9

lúc ấy Howard Aiken để thực hiện luận án tại Havard đã phải làm một khối lượng lớn các bài toán bằng tay Chính vì vậy ông mong muốn thực hiện các bài toán một cách tự động, sau đó nhờ các công trình của Babagge mà ông tìm thấy trong thư viện, ông quyết định tạo một máy bằng rờ le mà trước đó Babagge đã không thể thực hiện được bằng các bánh xe răng cưa

Máy tính đầu tiên của Aiken là máy Mark I, được hoàn tất năm 1944 ở Harvard gồm 72 từ, mỗi từ 23 số thập phân và có chu kỳ lệnh là 6 sec Việc xuất nhập dùng các băng giấy đục lỗ Sau đó Aiken hoàn tất máy Mark 2 và các máy tính rơ le trở nên lỗi thời Kỹ nguyên điện tử đã bắt đầu

2 Thế hệ thứ nhất:

Những máy tính đèn điện tử (1945-1955)

Các máy tính điện tử được phát triển nhanh trong thế chiến thứ 2 phục vụ các mục đích quân sự Tuy vậy các công trình này đều nằm trong các dự án bí mật quân sự Chỉ biết rằng tại Đức có nhữnng máy tính của Zuse, tại Anh có COLOSSUS mà một trong những người tham gia thiết kế là nhà toán học nỗi tiếng người Anh tên Alan Turing

Tại Hoa kỳ, John Mauchley đề nghị quân đội tài trợ cho việc xây dựng máy tính điện tử Đề nghị được chấp thuận vào năm 1943, Mauchley và sinh viên J Presper Eckert, tiến hành xây dựng một máy tính điện tử gọi là ENIAC (Electronic Numerical Integrator And Computer) Máy này gồm 18.000 đèn điện tử và 1500 rờ le, nặng 30 tấn và tiêu thụ 140KW Sau này người ta thường xem ENIAC là máy tính điện tử đầu tiên của nhân loại

Sau chiến tranh, Mauchley và Eiker tổ chức một khóa học hè để mô tả các công việc của họ cho những bạn đồng nghiệp Khóa học là sự khởi đầu cho sự phát triển ồ ạt trong việc thiết kế các máy tính số lớn Maurice Wilkes thiết kế EDSAC tại Đại học Cambridge Các máy khác như JOHNIAC ở Rand Corporation, ILLIAC ở Đại học Illinois, MANIAC ở Los Alamos Laboratory, WEIZAC ở Viện Weizmann nước Israel v.v…

Eckert và Mauchley làm ra máy kế tiếp EDVAC (Electronic Discrete Variable Automatic Computer) , dự án này bị tổn hại sau khi họ rời khỏi Penn để thành lập công

ty máy tính ở Philadelphia sau này là công ty Unisys

Trong lúc ấy, một trong những người tham gia trong dự án ENIAC trước đây là nhà toán học nổi tiếng John von Neumann đến Princeton và thiết kế ra máy IAS Ông đã đưa ra thiết kế cơ bản gọi là máy von Neumann Máy tính có khả năng lưu trữ chương trình đầu tiên , và đến nay vẫn là cơ sở cho hầu hết các máy tính số

Vào cùng thời gian von Neumann xây dựng máy IAS, các nhà nghiên cứu ở M.I.T cũng xây dựng một máy tính, Whirlwind 1 Dự án này dẫn đến phá minh ra bộ nhớ lõi của Jay Forrester và dẫn đến tạo ra các máy tính mini thương mại đầu tiên Với công việc ban đầu là sản xuất ra các máy đục lỗ cho các bìa và các máy xếp bìa bằng cơ khí, năm 1953 IBM sản xuất ra máy tính 701, sau đó máy 704 ra đời và

Trang 10

năm 1958 IBM sản xuất ra máy 709 và trở thành một trong những công ty máy tính hàng đầu thế giới

3 Thế hệ thứ hai:

Những máy tính transistor (1955-1965)

Transistor được phát minh ở Bell Labs năm 1948 bởi John Bardeen, Walter Brattain và William Shockley (Giải thưởng Nobel Vật lý 1956) Trong 10 năm, transistor đã cách mạng hoá máy tính và vào cuối thập niên 50 các máy tính đèn điện tử bị loại bỏ Máy tính transistor đầu tiên được xây dựng ở Lincoln Laboratory của M.I.T gọi là TX-0 (Transistorized eXperimental computer 0)

Một trong các kỹ sư làm tại đấy, Kenneth Olsen, thành lập công ty DEC năm

1957 để sản xuất máy tính thương mại Năm 1961 máy PDP-1 xuất hiện với giá thành nhiều so với các máy tính trước đó Một trong những đổi mới của PDP-1 là bộ hiển thị và khả năng vẽ nhiều điểm trên màn hình 512x512 Công nghiệp máy tính mini được khai sinh

Vài năm sau đó DEC giới thiệu PDP-8, máy 12 bit nhưng giá thành rẻ hơn PDP-1 gần 10 lần PDP-8 có một đổi mới chính, đó là bus đơn gọi là omnibus Một bus là một tập các dây nối song song dùng để liên kết các thành phần khác nhau trong 1 máy tính Cấu trúc này được chấp nhận và thực hiện hầu hết các máy tính nho.û

Với công ty IBM, họ xây dựng một phiên bản của 709 bằng transistor, máy 7090 và sau đó 7094 Vào thời điểm này IBM đã trở thành một công ty thiết kế máy tính chính nhờ bán các máy hướng kinh doanh nhỏ với máy 1401 Máy này có thể đọc và ghi băng từ, đọc và đục lỗ các bìa, in kết quả nhanh hơn 7094

Năm 1964, một công ty khởi đầu mới, CDC giới thiệu máy 6600, một máy có tốc độ nhanh hơn máy 7094 vì bên trong CPU có một cơ chế song song thật sự

Có nhiều náy tính khác xuất hiện trong thời kỳ này tuy vậy chỉ có một máy nổi bật với một lý do khá khác biệà đáng đề cập, máy Bourroughts B5000 Các nhà thiết kế có chiến thuật khác so với các đối thủ cạnh tranh là họ đặt biệt xây dựng một máy với ý định lập trình bằng ngôn ngữ Algol 60, một ngôn ngữ có trước PASCAL, và bao gồm nhiều đặc trưng trong phần cứng tạo dễ dàng cho công việc của trình biên dịch

4 Thế hệ thứ ba:

Những máy tính IC (1965-1980) Mạch tích hợp IC (integrated circuit) hay còn gọi vi mạch tích hợp được phát minh cho phép vài chục transistor được đặt trong một chip đơn Vào năm 1964, IBM , một công ty máy tính hàng đầu giới thiệu một sản phẩm, System 360 dùng vi mạch Máy được thiết kế cho cả tính toán trong thương mại và tính toán trong khoa học System 360 có nhiều đổi mới, quan trong là hệ này vài kiểu (model) chạy cùng một loại hợp ngữ, có công suất và kích thước tăng.Phần mềm viết viết trên cơ sở dùng được trên các máy kiểu khác Ý tưởng về các họ máy được ưa chuộng ngay lập tức, và trong một vài năm hầu hết các nhà sản xuất máy tính có một họ các máy chung

Trang 11

Đổi mới quan trọng khác trong 360 là đa lập trình (multi-programming), có vài chương trình trong bộ nhớ đồng thời để khi một chương trình đang chờ việc xuất/nhập hoàn tất, chương trình khác có thể tính toán 360 cũng là máy tính đầu tiên có thể mô phỏng các máy tính khác Một đặc trưng khác là không gian địa chỉ lớn (lúc bấy giờ) cho 224 byte nhớ (16 megabyte)

Thế giới máy tính mini cũng đã có một bước tiến lớn trong thế hệ máy tính vi mạch khi DEC giới thiệu máy PDP-11, một kế thừa 16-bit của PDP-8 Trên nhiều khía cạnh thì có thể xem PDP-11 như người em của họ 360 Chúng đều có các thanh ghi hướng từ và một bộ nhớ hướng byte PDP-11 rất được các trường Đại học ưa chuộng và DEc dẫn đầu trong việc sản xuất các máy tính mini so với các nhà sản xuất khác

5 Thế hệ thứ tư:

Những máy tính VLSI và PC (1980-?)

Vào thập niên 80, vi mạch cỡ cực lớn (Very Large Scale Integration) có khả năng chứa vài chục ngàn cho đến hàng chục triệu transistor trên một chip đơn Sự phát triển này dẫn đến có thể sản xuất các máy tính nhỏ hơn và nhanh hơn Ngày càng xuất hiện các máy tính dùng cho cá nhân với giá cả rất thấp gọi là máy vi tính

Các máy vi tính được sử dụng theo cách khác với máy tính lớn Chúng được sử dụng cho việc xử lý văn bản (word processing), thực hiện bảng tính (spreadsheet) và một số các ứng dụng mà các máy tính lớn hơn không thực hiện tốt được

Hiện nay các máy tính có thể chia làm 5 loại:

MIPS: (Million of Instructions Per Second) Triệu lệnh trong 1 giây

Trang 12

Họ Intel:

Năm 1968 công ty Intel được thành lập để chế tạo các chip nhớ Sau đó chuyển sang sản xuất các CPU đơn chip theo yêu cầu và Intel đã thực hiện chip 4004 loại 4 bit và 8008 loại 8 bit Từ sự thành công bất ngờ từ 2 loại chip trên, Intel đầu tư chip đa năng (general purpose) 8080 và sản phẩm này đã gây sóng gió trong công nghiệp và trở thành mặt hàng có thị trường lớn Intel đã bán được vài triệu sản phẩm này Năm

1976 Intel cho ra đời 8085 là 8080 đóng vỏ chung với vài thành phần vào/ra bổ sung Rồi kế tiếp Intel cho ra đời 8086, một CPU đơn chip 16-bit thật sự Sau đó là sự xuất hiện 8088 có cấu trúc giống 8086 nhưng bus dữ liệu chỉ có 8 bit nên giá thành rẻ hơn và chậm hơn Khi IBM chọn 8088 làm CPU cho các máy vi tính IBM PC đầu tiên, chip này trở thành chuẩn công nghiệp của máy tính cá nhân

Vài năm kế tiếp, Intel cho ra đời 80186 và 80188 là các phiên bản mới của 8086 và 8088, chúng chứa một lượng lớn các mạch xuất nhập nhưng thực tế không được sử dụng rộng rãi

8088 và 8086 đề không thể địa chỉ hoá được bộ nhớ lớn hơn 1 megabyte Để khắc phục vấn đề này Intel đã thiết kế 80286, một phiên bản tương thích và vượt trội

8086 Tập lệnh cơ bản giống 8086 và 8088 nhưng tổ chức bộ nhớ khác và rắc rối hơn

80286 được dùng trong IBM PC AT và PS/2 Giống như 8088, đây là một thành công lớn của Intel

Kế tiếp là một CPU 32-bit thật sự trên 1 chip, 80386 Giống như 80286, chip này

ít nhiều tương thích với các chip dùng chung với 8088

Sau đó là 80486 tương thích với 80386 và vượt trội hơn Sự khác nhau cơ bản của

80386 và 80486 là sự hiện diện của bộ đồng xử lý toán học (coprocessor), bộ điều khiển bộ nhớ và 8K bộ nhớ đệm truy cập nhanh (cache) trên 1 chip đơn Chip 80486

DX được giới thiệu đầu tiên vào tháng 4 năm 1989

Tháng 10 năm 1992, Intel công bố chip Pentium, chip này bắt đầu sử dụng vào tháng 03 năm 1993 Pentium đã được sử dụng công nghệ siêu vô hướng (superscalar technology), công nghệ này có khả năng kết hợp với các máy có tập lệnh thu nhỏ RISC (Reduced Instruction Set Computer) Pentium có 32 bit địa chỉ và 64 bit dữ liệu tuy vẫn chỉ có các thanh ghi 32 bit bên trong Pentium có 2 loại bộ cache

Pentium thế hệ 1 có tốc độ 60 /66 MHz, tích hợp khoảng 3,1 triệu transistor Pentium thế hệ 2 có tốc độ từ 75 đến 200MHz, tích hợp trên 3,3 triệu transistor

Các chip Pentium MMX (thế hệ 3) công bố vào tháng 1 năm 1997 có tốc độ lên đến 233MHz với trên 4,5 triệu transistor trên 1 chip Cộng nghệ MMX được Intel phát triển để đáp ứng nhu cầu về truyền thông đa phương tiện (multimedia)

Trang 13

Tháng 5 năm 1997 Intel công bố chip Pentium II với các tốc độ lên đến 300MHz tích hợp trên 7,5 triệu transistor trên 1 chip

Đến năm 1999 với sự xuất hiện của Pentium III máy vi tính có khả năng biểu diễn không gian ba chiều và nhận biết cũng như tổng hợp tiếng nói Tần số làm việc tối đa là 950MHz

Năm 2001 Intel cho ra đời Pentium IV tốc độ lên đến 1,7GHz dùng công nghệ siêu ống dẫn (hyper pipelined technology) cải thiện đáng kể chất lượng hình ảnh số, âm thanh số và các trò chơi trong không gian ba chiều…

Sự phát triển các CPU của Intel phản ánh toàn bộ sự phát triển trong công nghiệp máy tính

Năm 1979, Motorola giới thiệu 1 chip hoàn toàn mới không tương thích với 6800 hoặc 6809 Đây là điều ít có công ty nào dám làm trước đó Chip mới này, 68000 đưa

ra một sự thiết kế hoàn toàn mới thay vì tương thích với các chip đã lỗi thời Chip

68000 là một cấu trúc lai giữa 16 bit và 32 bit

Các nhà sản xuất máy vi tính Macintosh, Atari , Amiga chọn 68000 làm CPU vì chip này hoàn toàn cắt đứt với quá khứ và có chiều dài từ 32 bit Nhìn chung chip này có sự khởi đầu khá thành công và tạo ra một gia đình 680x0 rất giống nhau theo quan điểm người lập trình, các phiên bản mới chỉ có vài lệnh được thêm vào các phiên bản cũ Chip thứ 2 trong họ Motorola, 68008, giống hệt 68000 chỉ khác ở chỗ sử dụng bus dữ liệu 8 bit nhằm tạo ra các sản phẩm giá thành thấp Không giống 8088 của Intel,

68008 không được sử dụng rộng rãi

Không bao lâu sau người ta muốn thực hiện các hệ điều hành tinh vi như UNIX dùng 68000 Vấn đề ở đây là bộ nhớ ảo (virtual memory) , 68000 có khả năng hỗ trợ nhưng chưa đầy đủ Motorola giải quyết bằng cách đưa ra 68010 có các đặc trưng cần thiết Sau đó là sự xuất hiện của 68012, chip này về cơ bản giống 68010 nhưng thêm các chân địai chỉ để có thể địa chỉ hóa bộ nhớ 2 gigabyte thay vì 16 megabyte ít ỏûi

Trang 14

Một năm sau Motorola lại cho ra đời 68020 là một chip 32 bit thật sự 68020 là một thành công lớn và là nhân của hầu hết các trạm làm việc (workstation) chế tạo bởi Sun Microsystems, Apollo và Hewlett-Packard Chip tiếp theo là 68030 mà sự cải tiến nằm ở quản lý bộ nhớ

68040 giống như 80486 chứa CPU, một đồng xử lý toán học, đơn vị quản lý bộ nhớ và cache trên chip

Sau này lại xuất hiện chip Power PC Rõ ràng ta có thể so sánh 68030 với 80386,

68040 với 80486, Pentium với Power PC của 2 công ty Intel và Motorola Sự cạnh tranh giữa các chip của Intel và các chip của Motorola sẽ tiếp tục trong nhiều năm nữa

Hiện nay nhiều công ty trong đó chủ yếu là AMD (Advanced Micro Designs) và Cyrix sản xuất các bộ vi xử lý hoàn toàn tương thích với các bộ vi xử lý của Intel Chúng mô phỏng toàn bộ các lệnh và thậm chí phần lớn các chip này tương thích cả các chân của các chip Intel Bất cứ phần cứng hay phần mềm nào hoạt động trên các máy vi tính dùng các chip của Intel cũng sẽ hoạt động trên các máy vi tính dùng các chip tương thích của AMD và Cyrix

Trang 15

CHƯƠNG 2:

CẤU TRÚC CHUNG MÁY TÍNH

Một máy tính bao gồm các bộ xử lý, bộ nhớ và các thiết bị vào/ra Trong chương này sẽ giới thiệu 3 thành phần này và sự phối ghép chúng Chúng ta cần phải biết sơ lược cấu trúc chung của máy tính trước khi nghiên cứu kỹ các cấp lớp khác nhau trong các chương sau

Cấu trúc của một máy tính đơn giản có thể được hình dung như sau:

Đơn vị Số học và

I CÁC BỘ XỬ LÝ

Bộ xử lý trung tâm (CPU) là đầu não của máy tính Chức năng của nó là thực hiện các chương trình nằm trong bộ nhớ chính bằng cách nạp lệnh sau đó giải mã rồi thực hiện tuần tự hết lệnh này đến lệnh khác

Trang 16

Bộ xử lý trung tâm gồm đơn vị điều khiển (giữ nhiệm vụ lấy lệnh, giải mã lệnh) và đơn vị số học và logic (thực hiện các phép toán như cộng, trừ, nhân, chia, VÀ, HOẶC v.v…

CPU gồm có các thanh ghi cho phép lưu giữ kết quả tạm thời hoặc thông tin điều khiển Mỗi thanh ghi có một chức năng riêng Thanh ghi quan trọng nhất là thanh đếm chương trình (Program Counter) chỉ đến vị trí của lệnh tiếp theo sẽ thực hiện Ngoài ra có thanh ghi lệnh (Instruction register) Hầu hết các máy tính đều có các thanh ghi như thanh ghi chứa (accumulator), thanh ghi chỉ số (index register), thanh ghi trạng thái (status register), con trỏ ngăn xếp (stack pointer) v.v…

1 Thực hiện lệnh

CPU thực hiện lệnh tuần tự như sau:

a Tìm nạp lệnh kế tiếp từ bộ nhớ vào thanh ghi lệnh

b Thay đổi nội dung thanh đếm chương trình để xác định địa chỉ lệnh kế

c Giải mã lệnh vừa nạp

d Xác định nơi chứa dữ liệu trong bộ nhớ

e Tìm nạp dữ liệu vào các thanh ghi trong CPU nếu cần thiết

f Thực hiện lệnh

g Lưu kết quả vào nơi thích hợp

h Trở về bước 1 để thực hiện lệnh kế tiếp Các bước tuần tự trên gọi là chu kỳ tìm nạp-giải mã- thực hiện lệnh

Tập hợp tất cả lệnh người lập trình có thể sử dụng ở một cấp được gọi là tập các lệnh hay gọi ngắn ngọn là tập lệnh (instruction set) của cấp đó Đối với cấp máy qui ước, số lệnh của một tập lệnh thường trong khoảng từ 20 đến 300 Một tập lệnh có số lệnh lớn không nhất thiết tốt hơn một tập lệnh nhỏ Xu hướng trong thực tế sẽ ngược lại, một tập lệnh nhỏ sẽ tốt hơn Một tập lớn thường tồn tại nhiều lệnh không được sử dụng rộng rãi

Trang 17

Các trình biên dịch (compiler) của các ngôn ngữ cấp cao như Ada, Modula 2, Pascal, C thường hoạt động tốt trên các máy có tập lệnh nhỏ và được chọn lọc hơn là trên các máy có tập lệnh lớn, cồng kềnh và khó sử dụng

Máy tính có một tập lệnh rất nhỏ gọi là máy có tập lệnh được rút gọn RISC (Reduced Instruction Set Computer) Máy tính này thao tác rất nhanh

A+BALU

Đường dữ liệu bao gồm các thanh ghi và đơn vị số học và logic, các thanh ghi này có thể đưa giá trị vào 2 thanh ghi nhập vào tên A, B Hai thanh ghi này chốt các ngõ nhập vào của đơn vị số học và logic trong lúc ALU tính toán

ALU thực hiện phép toán cộng, trừ và các thao tác (operation) đơn giản khác trên các toán hạng (operand) chứa trong A và B, đưa ra kết quả trên thanh ghi xuất ra Dữ liệu trong thanh ghi xuất có thể được cất giữ trở lại một thanh ghi của CPU hoặc đưa trở lại bộ nhớ nếu muốn Trong hình trên phép cộng được sử dụng để minh hoạ

Trang 18

3 Thực hiện lệnh song song:

Từ những ngày đầu khai sinh ra máy tính, những nhà thiết kế đã cố gắng tạo ra những máy tính xử lý nhanh Để làm được điều ấy, người ta đã tìm nhiều biện pháp để hoàn thiện phần cứng Tuy nhiên, nhiếu giới hạn vật lý khác nhau bắt đầu xuất hiện khi tăng tốc độ phần cứng Ví dụ: Không có một tín hiệu nào có thể di chuyển vượt được vận tốc của ánh sáng trong chân không, khoảng 30cm/ngiây và trong cáp đồng là 20cm/ngiây Điều này có nghĩa là để xây dựng một máy tính có thời gian lệnh là 1 ngiây, toàn bộ khoảng cách mà tín hiệu có thể di chuyển từ CPU đến bộ nhớ và ngược lại sẽ không thể lớn hơn 20 cm Vì thế các máy tính có tốc độ càng nhanh phải có kích thước càng nhỏ

Với các máy tính có tốc độ cao, khả năng sinh nhiệt lớn và nếu lắp máy tính vào

1 thể tích nhỏ thì sẽ khó tiêu tán nhiệt Đôi khi các siêu máy tính được đặt chìm trong chất lỏng freon, một chất dùng làm nguội nhanh Để giải quyết vấn đề này, thay vì tạo

ra một CPU tốc độ cao, người ta thiết kế máy tính gồm nhiều CPU tốc độ chậm hơn nhưng hoạt động song song Nhiều công trình nghiên cứu đã được tiến hành để xây dựng những máy tính song song như vậy

Máy tính song song được chia thành 3 loại (theo Flynn, 1971) dựa vào số luồng lệnh (instruction stream) và số luồng dữ liệu (data stream) của máy tính đó:

(Single Instruction stream, Single Data stream)

- SIMD: máy loại đơn lệnh, đa dữ liệu (Single Instruction stream, Multiple Data stream)

(Multiple Instruction stream, Multiple Data stream) Máy von Neumann truyền thống thuộc loại SISD, có một luồng lệnh (nghĩa là một chương trình) được thực hiện bởi 1 CPU và có một bộ nhớ chứa dữ liệu Lệnh đầu tiên được tìm-nạp từ bộ nhớ và thực hiện Lệnh thứ hai được tìm-nạp và thực hiện v.v…

Ngay cả trong mô hình tuần tự này, có thể nghĩ đến 1 quá trình song song như tìm-nạp lệnh kế tiếp trước khi lệnh đang thực hiện hoàn tất Với máy tính CDC6600 có nhiều đơn vị chức năng (các ALU)

Trang 19

Hình 2.3: Một CPU với 5 đơn vị chức năng hoạt động song song

Ý tưởng của phương pháp thiết kế này là đơn vị điều khiển tìm-nạp một lệnh và sau đó đưa đến một đơn vị chức năng thích hợp để thực hiện Trong lúc đó, đơn vị điều khiển tìm-nạp chỉ thị kế tiếp và đưa đến một đơn vị chức năng khác

Quá trình này tiếp tục cho đến khi không thể tiếp tục được nữa, hoặc vì tất cả các đơn vị chức năng cùng loại đang bận hoặc một toán hạng vẫn còn đang được tính toán

Một biến thái của ý tưởng này là tách việc thực hiện một lệnh ra thành nhiều phần Trong hình sau ta thấy một CPU có 5 đơn vị xử lý

Hình 2.4: Một máy đường ống có 5 đơn vị xử lý

Cách tổ chức như trong hình được gọi là máy đường ống (Pipeline machine) Nếu thời gian dành cho mỗi đơn vị xử lý là m ngiây thì phải mất 5m ngiây để thực hiện một lệnh Tuy nhiên với các tổ chức trên có thể xem mỗi lệnh thực hiện chỉ trong m ngiây

do vậy tăng tốc độ xử lý lệnh của máy lên gấp 5 lần

Trang 20

Chú ý rằng mặc dù máy sử dụng cơ chế song song bên trong, một máy đường ống dẫn vẫn là máy SISD do chỉ có một chương trình và một tập dữ liệu Ngược lại, các máy SIMD thao tác trên nhiều tập dữ liệu song song Ứng dụng điển hình của loại máy SIMD là dự báo thời tiết Thí dụ như tính nhiệt độ trung bình hàng ngày cho nhiều vùng, phương pháp tính đều giống nhau nhưng với các dữ liệu khác

Một cấu trúc khá thích hợp cho công việc này là máy vector (vector machine) dược trính bày trong hình 2.5

Đường dữ liệu ở đây tương tự như trong hình 2.2 , chỉ khác ở chỗ thay vì có một biến đơn cho từng ngõ nhập của ALU, ta có một vector với n ngõ nhập Tương tự ALU thực sự là một ALU vector, có khả năng thực hiện một thao tác như phép công vector (hình 2.5 b) trên 2 vector nhập và kết qủa được lấy ra ở vector xuất Một số siêu máy tính có cấu trúc tương tự với cấu trúc này

Hình 2.5

Một máy khác gần giống với SIMD là bộ xử lý dãy (array processor, một thiết kế khởi đầu từ Đại học Illinois Đó là máy tính ILLIAC IV như minh họa trong hình 2.6 sau:

Trang 21

Hình 2.6: Bộ xử lý dãy của máy ILLIAC IV Cấu trúc này bao gồm một mạng vuông các phần tử bộ xử lý / bộ nhớ Một đơn vị điều khiển truyền các lệnh và chúng được thực hiện bởi tất cả các bộ xử lý theo kiểu sát gót (lockstep), mỗi bộ xử lý sử dụng dữ liệu riêng lấy từ một bộ nhớ riêng Bộ xử lý dãy đặc biệt thích hợp cho việc tính toán ma trận

Loại máy thứ ba là MIMD, trong đó các CPU khác nhau làm việc với những chương trình khác nhau, thỉnh thoảng chúng sử dụng chung một bộ nhớ Hệ thống đặt chỗ trước trong máy bay là một thí dụ, nhiều người cùng đặt chỗ đồng thời nhưng không tiến hành song song, mà từng lệnh một vì chúng ta có nhiều luồng lệnh và nhiều luồng dữ liệu

Hình 2.7 a trình bày một bộ đa xử lý (multiprocessor), một máy MIMD sử dụng bộ nhớ chia sẻ (shared memory) Các bộ xử lý truy xuất tới bộ nhớ chia sẻ (dùng chung) thông qua bus

Hình 2.6

Trang 22

Khi nhiều bộ xử lý tốc độ nhanh truy xuất đồng thời tới bộ nhớ chia sẻ (dùng chung) trên cùng một bus thì sẽ xảy ra xung đột (conflict) Những nhà thiết kế bộ đa xử lý đã tìm nhiều phương án khác nhau để giảm thiểu sự tranh chấp và cải thiện hiệu xuất Một thiết kế đó được trình bày trong hình 2.6b cho thấy mỗi bộ xử lý có một bộ nhớ cục bộ (riêng), các bộ xử lý khác không thể thâm nhập đến Bộ nhớ này sử dụng cho các mã chương trình và dữ liệu không cần chia sẻ Việc truy xuất bộ nhớ riêng không dùng đến bus chính sẽ làm giảm một lượng lớn lưu lượng trên bus chính

Các bộ đa xử lý khác không sử dụng một bus mà dùng nhiều bus để làm giảm tải Một số khác sử dụng caching, một kỹ thuật sử dụng các từ nhớ được thường xuyên sử dụng trong từng bộ xử lý

II- BỘ NHỚ CHÍNH:

Bộ nhớ là một phần của máy tính dùng để chứa chương trình và dữ liệu đang thực hiện Không có máy tính số nào lưu trữ chương trình mà không có bộ nhớ, để từ đó bộ xử lý có thể ghi và đọc thông tin

do vậy đây là phương pháp đáng tin cậy nhất để mã hoá thông tin số

Một số máy tính như các mainframe của IBM, được quảng cáo có thể sử dụng cả số thập phân lẫn số nhị phân Mưu mẹo này đạt được bằng cách dùng 4 bit để chứa một số thập phân 4 bit cho ta 16 tổ hợp, dùng cho 10 số từ 0 đến 9 còn 6 tổ hợp không sử dụng

Thí dụ: 16 bit ở dạng thập phân có thể chứa các số từ 0 tới 9999, chỉ cho 10000 tổ hợp trong khi 16 bit nhị phân có thể chứa 65536 tổ hợp khác nhau Vì lý do này người

ta nói số nhị phân hiệu qủa hơn số thập phân

Tuy nhiên điều gì sẽ xảy ra, nếu một người nào đó thông minh có thể tạo ra một linh kiện điện tử độ tin cậy cao có thể chứa trực tiếp các số từ 0 đến 9 bằng cách chia điện áp từ 0 tới 10 volt thành 10 khoảng 4 linh kiện này có thể chứa bất kỳ số thập phân nào từ 0 tới 9999 4 linh kiện như vậy sẽ cung cấp 10000 tổ hợp Cũng có thể

Trang 23

dùng chúng để biểu diễn các số nhị phân, chỉ dùng 0 và 1 Trong trường hợp này ta chỉ có 16 tổ hợp Với những linh kiện như vậy, rõ ràng số thập phân có hiệu quả hơn

2 Địa chỉ bộ nhớ:

Bộ nhớ gồm các ô nhớ hay còn gọi là vị trí nhớ (location) Mỗi ô nhớ chứa một mẫu thông tin (piece of information) Mỗi ô nhớ có một số gọi là địa chỉ hoặc vị chỉ (address) của ô nhớ Các chương trình có thể tham chiếu đến các địa chỉ này Nếu bộ nhớ có n ô nhớ, chúng sẽ đánh địa chỉ từ 0 tới n-1 Các ô nhớ chứa cùng một số bit Một ô nhớ có k bit sẽ có thể chứa 1 trong 2k tổ hợp bit khác nhau Hình 2.7 trình bày 3 cách tổ chức khác nhau cho một bộ nhớ 96 bit

Nếu 1 địa chỉ có m bit, số ô nhớ tối đa có thể địa chỉ hoá (đánh địa chỉ) trực tiếp là 2m

Hình 2.7 Thí dụ: Trong hình 2.7 a cần ít nhất 4 bit để diễn tả các số từ 0 đến 11 Tuy nhiên chỉ cần 3 bit để diễn tả địa chỉ trong các hình 2.7b và 2.7c

Số bit trong địa chỉ liên quan đến số ô nhớ tối đa có thể địa chỉ hóa trực tiếp trong bộ nhớ và không tùy thuộc vào số bit của mỗi ô nhớ

Một bộ nhớ có 212 ô nhớ, mỗi ô nhớ có 8 bit và một bộ nhớ có 212 ô nhớ, mỗi ô nhớ có 60 bit thì cả hai đều cần 12 bit cho địa chỉ, tuy nhiên dung lượng bộ nhớ trước nhỏ hơn bộ nhớ sau

Số bit của mỗi ô nhớ đối với một số máy tính đã được bán trên thị trường như sau:

Trang 24

Honeywell 6180 36 bits /ô nhớ

Trong những năm gần đây, hầu hết các nhà chế tạomáy tính đều chuẩn hoá 1 ô nhớ có 8 bit và gọi là một byte Nhiều byte gộp lại thành từ (word) Một máy tính sử dụng 1 từ 16 bit nghĩa là máy có 2 byte/từ, trong khi đó một máy dùng 1 từ 32 bit sẽ có

4 byte/từ Hầu hết các lệnh của máy tính đều thao tác trên từ, thí dụ cộng 2 từ với nhau Do vậy, một máy 16 bit sẽ có các thanh ghi 16 bit và các lệnh để thao tác các từ

16 bit, máy có 32 bit sẽ có các thanh ghi 32 bit và các lệnh để thực hiện phép dịch chuyển, cộng, trừ và các thao tác khác trên các từ 32 bit

3 Trật tự của byte:

Byte trong 1 từ được đánh số từ trái sang phải hoặc từ phải sang trái Sự lựa chọn này thoạt nhìn không quan trọng nhưng bao hàm một ý nghĩa rất lớn Hình 2.8a miêu tả một phần bộ nhớ của một máy tính 32 bit, trong đó các byte được đánh số từ trái sang phải đối với họ Motorola chẳng hạn Hình 2.8b đại diên cho họ máy tính 32 bit dùng phương pháp đánh số thừ phải sang trái chẳng hạn như họ Intel

Hệ thống đánh số bắt đầu từ số lớn gọi là máy tính Big-endian (bậc cao) ngược lại Little-endian (bậc thấp)

Có một phương pháp khác nhưng cũng không hiệu quả lắm là thêm 1 header trước mỗi hồ sơ cho biết loại dữ liệu theo sau (chuỗi, số nguyên hoặc dữ liệu khác) và

Trang 25

chiều dài là bao nhiêu Điều này cho phép máy tính nhận chỉ phải thực hiện những chuyển đổi cần thiết

Trong bất kỳ trường hợp nào ta cũng thấy rằng việc thiếu một tiêu chuẩn về trật tự byte là nỗi phiền toái chính khi trao đổi dữ liệu giữa các máy tính khác nhau

4 Mã sửa lỗi:

Thỉnh thoảng bộ nhớ máy tính cũng tạo ra lỗi do các xung điện áp trên đường cấp điện hoặc do những nguyên nhân khác Để tránh những lỗi như vậy, các bộ nhớ đều dùng các mã phát hiện lỗi hoặc các mã sửa lỗi Khi sử dụng các mã này, các bit phụ được thêm vào ở mỗi từ nhớ theo một phương pháp đặc biệt Khi đọc một từ ra khỏi bộ nhớ, các bit phụ được kiểm tra để xem có lỗi hay không

Để hiểu các lỗi được xử lý như thế nào ta cần phải biết thực sự lỗi là gì? Giả sử một từ nhớ có m bit dữ liệu và ta sẽ thêm vào r bit dư thừa (redundant) hoặc r bit kiểm tra Đặt toàn bộ chiều dài bit là n (n=m+r) Một đơn vị có m bit dữ liệu và r bit kiểm tra được xem như một từ mã (code word) n bit

Cho 2 từ mã 10001001 và 10110001, ta có thể xác định chúng có bao nhiêu bit tương ứng khác nhau, ở thí dụ này 2 từ mã có 3 bit khác nhau Để xác định số bit khác nhau, ta chỉ cần thực hiện phép toán XOR theo bit hai từ mã đã cho va đếm số bit 1 trong kết quả Số các bit trên 2 từ mã khác nhau gọi là khoảng cách Hamming Ý nghĩa của việc xác định khoảng cách là nếu 2 từ mã có khoảng cách Hamming là d, cần có d lỗi đơn bit (single bit error) sẽ đổi mã này thành mã kia Thí dụ các từ mã 11110001 và

00110000 có khoảng cách Hamming là 3 vì cần có 3 lỗi đơn bit để đổi mã này thành mã kia

Với một từ nhớ m bit, tất cả 2m tổ hợp các bit đều hợp lệ nhưng do có tính các bit kiểm tra, chỉ có 2m trong 2n từ mã có giá trị hợp lệ Khi đọc bộ nhớ thấy xuất hiện một từ mã không hợp lệ, máy tính hiểu rằng đã xảy ra một lỗi bộ nhớ Cho một giải thuật để tính các bit kiểm tra, ta có thể xây dựng một danh sách các từ ma hoàn toàn hợp lệ, từ dfanh sách này tìm ra 2 từ mã có khoảng cách Hamming nhỏ nhất Khoảng cách này là khoảng cách Hamming đầy đủ

Thí dụ: Hãy xem một biểu diễn đồ hoạ đơn giản minh họa rõ ý tưởng về mã sửa lỗi cho các từ nhớ 4 bit

Sơ đồ Venn hình 2.9 có 3 vòng tròn A, B và C tạo thành 7 vùng khác nhau Thí dụ ta mã hoá từ nhớ 4 bit 1100 trong các vùng AB,ABC, AC và BC Cứ 1 bit cho 1 vùng Kế tiếp ta thêm 1 bit kiểm tra chẳn lẻ vào từng vùng trống còn lại để tạo ra kiểm tra chẵn

Trang 26

Hình 2.9 Kích thước từ Số bit kiểm tra Kích thước chung Phần trăm

Hình 2.10: Số bit kiểm tra cần thiết cho mã sửa lỗi đơn

5 Bộ nhớ chính trong các IBM PC

Các máy tính cá nhân PC (Personal computer) ban đầu sử dụng các chip vi xử lý

20 bit địa chỉ có khả năng địa chỉ hoá một không gian bộ nhớ tối đa 1 MB trong đó 640KB dưới được gọi là vùng nhớ qui ước (conventionnal memory), 384 KB trên là vùng nhớ dự trữ cho hệ thống hay còn gọi vùng nhớ cao UNA (Upper Memory Area) Sự sắp xếp này tồn tại đến bây giờ Bộ nhớ 1MB được chia làm 16 vùng nhớ, mỗi vùng 64 KB gọi là phân đoạn (segment) được đánh số từ 0 đến F (còn gọi là các phân đoạn từ 0000 đến F000)

640 KB vùng nhớ qui ước bao gồm các phân đoạn từ 0000 đến 9000 và 384 KB vùng nhớ dự trữ cho hệ thống bao gồm các phân đoạn từ A000 đến F000

Các chip vi xử lý có nhiều bit địa chỉ hơn lần lượt ra đời làm cho không gian bộ nhớ tối đa tăng dần (16M đối với 80286; 4G đối với 80386, 80486, Pentium, Pentium MMX, Pentium Pro; 64G đối với Pentium II)

Vùng nhớ lớn hơn 1MB gọi là vùng nhớ mở rộng (extended memory) Nếu bô vi xử lý chạy ở chế độ thực (real mode), chỉ có 1 MB đầu tiên được truy xuất Ngược lại, nếu bộ vi xử lý ở trong chế độ bảo vệ (protected mode), toàn bộ không gian nhớ có thể truy xuất được

Trang 27

Một vấn đề quan trọng đã xảy ra trong các PC là sự xung đột giữa các chip bộ nhớ RAM (Random Access Memory) được cài đặt cùng với bộ nhớ dành cho hệ thống,

do vậy 384 KB RAM trùng địa chỉ với vùng nhớ dành cho hệ thống sẽ bị bỏ qua (nghĩa là tổng dung lượng bộ nhớ RAM sử dụng được sẽ bằng tổng dung lượng bộ nhớ RAM cài đặt trừ đi 384 K)

Thí dụ các PC có 4 MB RAM được cài đặt cho thấy chỉ có 3712 KB được sử dụng bao gồm 640KB cho vùng nhớ qui ước và 3072 KB cho vùng nhớ mở rộng Tuy vậy vẫn có các PC chỉ thiếu 128KB thay vì 384KB nhờ vào các biện pháp sắp xếp lại bộ nhớ

Sự xung đột xảy ra do các phân đoạn A000 và B000 được dành cho RAM video, các phân đoạn C000 và D000 được dành cho bộ nhớ chỉ đọc ROM và RAM của các board cắm trên các khe cắm mở rộng (expansion slot) của board chính (mainboard), các phân đoạn E000 và F000 được dành cho bộ nhớ chỉ đọc chứa hệ xuất nhập cơ bản ROM BIOS (Basic Input Output System) trên board chính Điều này có nghĩa là tất cả RAM chiếm những địa chỉ này phải bị tắt hoặc các thành phần nêu trên không thực hiện được chức năng của mình để tránh xung đột trong vùng UMA

Các nhà thiết kế board chính thường thực hiện các khả năng sau để tránh xung đột:

- Sử dụng RAM nhanh hơn để lưu trữ bản sao của các ROM chậâm, gọi là tạo cửa sổ, vô hiệu hoá các ROM này trong xử lý

- Tắt các RAM không sử dụng tạo cửa sổ nhằm tránh xung đột trong vùng UMA

- Sắp xếp lại RAM không được sử dụng tạo cửa sổ

Phần lớn các PC tạo cửa sổ cho ROM BIOS (thường là 64K), ROM video (32K)RAM dùng trong bộ nhớ chính là RAM động (Dynamic RAM) và các RAM động cải tiến như EDO-RAM (Extended Data Out RAM) và SDRAM (Synchronous DRAM) có thời gian truy xuất trong khoảng từ 10 nsec đến 200 nsec

Các chip nhớ RAM hiện nay được ghép thành các mođun nhớ một hàng chân gọi là SIMM hoặc các mođun nhớ hai hàng chân gọi là DIMM

Các SIMM 30 chân có dung lượng 256K, 1M, 4M, 16 MB nhớ (8 bit hoặc 9 bit nếu có bit chẵn lẻ)

Các SIMM 72 chân có dung lượng 1 M, 2M, 4M, 8 M, 16 M, 32M và 64 MB nhớ hay 256K, 512K, 1M, 2M, 4M, 8 M, 16 M từ nhớ 32 bit (hoặc 36 bit nếu kể thêm các bit kiểm tra chẳn lẻ)

Trang 28

Các DIMM 168 chân có dung lượng 1M, 2M, 4M, 8 M, 16 M từ nhớ 64 bit (hoặc

72 bit nếu kể thêm các bit kiểm tra chẵn lẻ)

Ngoài bộ nhớ RAM động, trong các PC còn tồn tại các bộ nhớ chỉ đọc ROM lưu các chương trình cố định như ROM BIOS và ROM bàn phím hay bộ điều khiển bàn phím

ROM BIOS chứa các chương trình thực hiện các chức năng cơ bản sau:

- Kiểm tra những thành phần của máy tính khi khởi động như: bộ nhớ, board chính, board video, bộ điều khiển đĩa, bàn phím và những thành phần quan trọng khác của máy tính

- Tìm và nạp hệ điều hành

- Cung cấp các chương trình cho bộ vi xử lý để thực hiện các thao tác liên quan đến các thiết bị xuất/nhập

III- CÁC THIẾT BỊ LƯU TRỮ (BỘ NHỚ PHỤ):

Vì mỗi từ nhớ trong bộ nhớ chính được truy xuất trực tiếp với thời gian rất ngắn, giá thành của bộ nhớ chính tương đối cao Do đó hầu hết các máy tính đều có thêm các thiết bị lưu trữ (bộ nhớ phụ) tốc độ thấp, rẻ hơn và thường có dung lượng lớn hơn nhiều

1 Băng từ:

Về mặt lịch sử, băng từ (magnetic tape) là thiết bị lưu trữ đầu tiên Ổ băng từ của máy tính tương tự như máy ghi băng trong gia đình Băng từ có chiều dài 2400 ft được quấn trên một ống cho (feed reel) qua 1 đầu ghi đến ống nhận (take-up reel) Bằng cách thay đổi dòng điện trong đầu ghi, máy tính có thể ghi thông tin lên băng từ ở dạng các vệt từ hoá nhỏ (magnetized spot)

Hình 2.11

Trang 29

Hình 2.11 trình bày cách tổ chức thông tin trên băng từ Ở một máy tính với các byte 8 bit, mỗi khung (frame) chứa 1 byte cộng thêm 1 bit phụ (dư), gọi là bit kiểm tra chẵn lẻ để cải thiện độ tin cậy Mật độ ghi tiêu biểu của băng từ là 1600bpi (byte per inch) Mật độ thường dùng khác là 800bpi và 6250 bpi

Sau khi ổ băng từ thực hiện xong việc ghi 1 bản ghi vật lý (physical record), 1 khe (gap) được để lại trên băng từ trong lúc ổ băng từ giảm (tăng) tốc độ xuống (lên) khi dừng (khởi động) băng trước đầu đọc Nếu chương trình ghi các bản ghi ngắn trên băng từ, nhiều khoảng trống sẽ bị bỏ phí ở các khe Bằng cách ghi các bản ghi dài hơn các khe nhiều, việc sử dụng băng từ sẽ có hiệu quả cao

Băng từ là loại thiết bị truy xuất tuần tự nối tiếp Nếu băng từ được định vị ở vị trí khởi đầu (đầu từ đang ở đầu băng), muốn đọc bản ghi n, ta phải đọc qua hết các bản ghi từ 1 tới n-1 Nếu thông tin muốn đọc nằm ở cuối băng, chương trình phải đọc hầu như toàn bộ băng và mất khoảng vài phút CPU có thể thực hiện hàng triệu lệnh mỗi giây, trong lúc băng từ lại làm gia tăng sự lãng phí về thời gian Hầu như băng từ chỉ thích hợp khi dữ liệu được truy xuất tuần tự nối tiếp

2 Đĩa từ

Đĩa từ (disk) là một đĩa kim loại hình tròn có đường kính từ 5 tới 10 inch được phủ từ trên 2 mặt bởi nhà sản xuất (hình 2.12) Thông tin được ghi trên một số vòng tròn đồng tâm gọi là rãnh hoặc còn gọi từ đạo (track) Đĩa có từ vài chục đến vài trăm rãnh trên mỗi mặt Các đầu từ được đặt trên 1 giá (cánh tay - arm ) dịch chuyển vào ra theo đường bán kính Đầu từ có bề rộng đủ để đọc hoặc ghi thông tin lên rãnh một cách chính xác Ổ đĩa thường gồm nhiều đĩa xếp theo chiều đứng cách xa nhau khoảng

1 inch Vị trí xuyên tâm của các đầu từ (khoảng cách từ trục) gọi là từ trụ (cylinder) Ổ đĩa có n đĩa sẽ có 2n đầu từ và có 2n rãnh trên 1 từ trụ

Trang 30

(a) Ổ đĩa có 1 đĩa (b) Ổ đĩa có 4 đĩa

Các thao tác truy xuất đĩa luôn bắt đầu ở đầu của một cung, không bao giờ ở giữa cung Nếu phải truy xuất nhiều cung vượt qua rãnh khác trong cùng một từ trụ (nghĩa là từ mặt 0 sang mặt 1 ở cùng vị trí của giá nối đầu từ), ta sẽ không mất thời gian bởi

vì việc chuyển từ đầu từ này sang đầu từ khác được thực hiện bằng mạch điện tử mà không liên quan đến phần cơ khí Tuy nhiên, nếu truy xuất qua ranh giới của từ trụ, phải mất thời gian quay trong khi định vị lại các đầu từ cho từ trụ kế tiếp và đợi cho cung 0 quay trở lại

Trang 31

Hình 2.13 : Khoảng cách đầu từ với mặt đĩa

Nếu đầu từ được định vị trên một từ trụ sai, trước tiên đầu từ phải di chuyển Sự

di chuyển này gọi là tìm kiếm (seek) Mỗi lần tìm kiếm sẽ mất 3 msec giữa các rãnh kế cận nhau, và mất từ 20 đến 100msec để đi từ từ trụ trong cùng ra đến từ trụ ngoài cùng Khi đầu từ đã ở đúng vị trí, bộ điều khiển phải đợi cho tới khi cung đầu tiên quay tới đúng tại đầu từ đọc viết thì mới bắt đầu truy xuất Thời gian đợi (bị bỏ phí) để quay tới cung đúng thay đổi từ 0 (nếu chương trình gặp may) đến hết toàn bộ thời gian quay Thời gian đợi này gọi là thời gian trễ luân phiên (rotational latency) Đa số các đĩa thời kỳ đầu đều quay với vận tốc 3600 vòng /phú nên thời gian trễ cực đại là 16,67 msec (Hiện nay vận tốc quay đã lên đến 5400-7200 rpm) Thời gian truy xuất tổng cộng chính là thời gian tìm kiếm cộng với thời gian trễ luân phiên và thời gian truy xuất thực

Gần như tất cả các máy tính đều sử dụng ổ đĩa có nhiều đĩa như mô tả ở trên để lưu trữ các dữ liệu quan trọng Những đĩa này thường gọi là đĩa cứng (hard disk) Loại thường dùng nhất là đĩa winchester (thập niên 60) Ổ đĩa được bịt kín (tránh ô nhiễm

do bụi) Các đầu từ trên đĩa winchester được định dạng theo phương pháp khí động lực học và lơ lửng trên một đệm khí tạo ra do sự quay tròn của đĩa Dung lượng của đĩa ban đầu thường khoảng hàng chục MB, còn hiện nay là hàng chục, hàng trăm GB (tên các mainframe)

Dữ liệu nhị phân dưới dạng các chuỗi bit 0, 1 (dạng thô) không được ghi trực tiếp lên đĩa Thay vào đó người ta mã hoá chúng, nghĩa là chuyển đổi dữ liệu nhị phân thô thành chuỗi xung và ghi lên đĩa Việc chuyển đổi này nhằm phù hợp với việc đảo chiều cực tính các vùng từ tính trên đĩa khi có sự thay đổi chiều dòng điện trên đầu ghi Khi đọc dữ liệu trên đĩa, quá trình giải mã chuỗi xung sẽ diễn ra để ta có lại dữ liệu nhị phân thô ban đầu Thiết bị làm công việc mã hoá và giải mã được gọi là bộ mã hoá/giải mã ENDEC (Encoder - Decoder) Có nhiều phương pháp mã hoá khác nhau như điều chế tần số FM (Frequency Modulation), điều chế tần số thay đổi MFM (Modified Frequency Modulation) v.v…

Trang 32

3 Đĩa mềm

Với sự xuất hiện của máy vi tính, người ta có một phương pháp để cài đặt phần mềm Đó là sử dụng đĩa mềm (diskette hay Floppy disk), là phương tiện nhỏ gọn có thể đem đi xa được

Hình 2.14: Hoạt động đĩa mềm

Không như các đĩa Winchester, các đầu từ của đĩa cứng lơ lửng trên bề mặt đĩa ở khoảng cách vài micron, đầu từ của các đĩa mềm thực sự tiếp xúc với bề mặt đĩa Do vậy, môi trường tiếp xúc của bề mặt đĩa và đầu từ sẽ bị hao mòn tương đối nhanh Để làm giảm sự hao mòn này, trong các máy vi tính, người ta rút đầu từ lên trên và ngừng quay đĩa khi ổ đĩa không đọc hoặc không ghi thông tin Do đó, khi có lệnh đọc hoặc ghi thông tin kế tiếp, sẽ có thời gian trễ khoảng nửa giây để môtơ tăng tốc độ

Ngày nay kích thước đĩa thường là 3.5 inch, còn loại 5.25 inch gần như không còn sử dụng nữa do đĩa 3.5 inch chứa nhiều dữ liệu hơn và nhờ chứa trong vỏ cứng do vậy được bảo vệ tốt hơn

Với loại kích thước 3.5 inch, dung lượng thường là 1.44MB, có 80 rãnh, 15 cung trên 1 rãnh, 2 mặt sử dụng được, số vòng quay/ phút là 300 và tốc độ dữ liệu là 500 kbps

Hãng Toshiba cũng đã sản xuất các đĩa mềm dung lượng 2.88 MB, kích thước 3.5 inch năm 1987 và sử dụng trong các hệ thống PS/2 Các phiên bản DOS 5.0 trở lên đã hổ trợ cho loại đĩa mềm này

Các ổ đĩa mềm đều sử dụng phương pháp mã hoá MFM khi đọc và ghi dữ liệu trên đĩa mềm

Trang 33

4 Đĩa quang

Trong những năm gần đây, các đĩa quang (optical disk) (khác với đĩa từ) đã được đưa vào sử dụng Các đĩa quang có mật độ ghi thông tin cao hơn nhiều so với các đĩa từ thông thường Ban đầu đĩa quang được triển khai để ghi các chương trình truyền hình nhưng rồi chúng cũng được dùng làm các thiết bị lưu trữ của máy tính

Các đĩa quang đầu tiên được sáng chế bởi 1 tập đoàn điện tử của Hà Lan là Philips và được phát triển thêm với sự hợp tác của Sony của Nhật Các đĩa quang này dựa vào công nghệ đã dùng trong máy quay đĩa âm tần Compact Disc và được gọi là

CD ROM (Compact Disc Read Only Memory)

Đĩa CD ROM được chế tạo bằng cách dùng một tia laser có công suất cao để đốt cháy các lỗ có kích thước 1 micron (10-6 m) trên một đĩa chủ (master disk) Từ đĩa chủ này, người ta tạo được một khuông dùng làm mẫu để tạo những bản sao trên các đĩa plastic Kế đến phủ lên bề mặt một lớp nhôm mỏng và tiếp theo là một lớp plastic bảo vệ trong suốt Thiết bị dùng để đọc đĩa CD ROM có một bộ phân tích đo năng lượng phản xạ từ bề mặt khi có một tia laser công suất thấp phát tới bề mặt Các lỗ được gọi là pit và những vùng không bị đốt cháy giữa các pit gọi là land sẽ có sự phản xạ khác nhau giúp ta phân biệt được giữa pit và land

Kỹ thuật này có nhiều hệ quả quan trọng Thứ nhất, do các đĩa CD ROM được dập khuông, không ghi thông tin như các đĩa mềm thông thường và được chế tạo hàng loạt bằng máy tự động theo một khuôn mẫu sẵn nên giá thành rất thấp Thứ hai, do đĩa plastic có bao phủ một lớp nhôm được dập theo khuôn nên sẽ không thật chính xác, thông tin số trên đĩa thường chứa nhiều lỗi

Vấn đề lỗi được xử lý bằng 2 cách Trước tiên, đầu đọc trong ổ đĩa có một gương chính xác được điều khiển bởi một cơ cấu trợ động (một máy để điều khiển một cỗ máy to hơn) dùng để theo dõi bề mặt đĩa nhằm bù lại sự không hoàn hảo khi chế tạo Thứ hai, dữ liệu được ghi lên đĩa dùng một phương pháp mã hoá phức tạp gọi là mã sửa lỗi xen kẽ (cross interleave) Reed-Solomon Phương pháp mã hoá này dùng nhiều bit hơn mã Hamming để có thể sửa nhiều lỗi

Hơn nữa thay vì biểu thị pit là 0 và land là 1 (hoặc ngược lại), người ta biểu thị cho mỗi lần chuyển tiếp pit-land hoặc land-pit là 1 Khoảng cách giữa 2 lần chuyển tiếp cho biết có bao nhiêu bit zero giữa các bit Dữ liệu được ghi thành các nhóm 24 byte, mỗi nhóm được mở rộng thêm từ 8 đến 14 bit bằng cách dùng mã Reed-Solomon Thêm 3 bit đặc biệt vào giữa mỗi nhóm và thêm một byte đồng bộ để tạo thành một khung (frame) Một nhóm 98 khung tạo thành một khối (block) chứa 2 KByte dữ liệu Khối là đơn vị cơ bản được địa chỉ hoá Mặc dù phương pháp này phức tạp và tốn một

Trang 34

vùng điã đáng kể nhưng lại cho ta độ tin cậy rất cao với vật liệu sử dụng có giá thành thấp

Thông tin trên CD ROM được ghi theo dạng xoắn ốc liên tục, không giống như điã từ theo các từ trụ và rãnh riêng biệt Khuông dạng này được minh họa trong hình 2.15

Tốc độ đọc cơ bản của một điã quang là 150 KByte/sec Các ổ điã đọc nhanh có tốc độ là bội số của tốc độ cơ sở này (Thí dụ 24X, 32X, 36X, 48X, 52X,…)

Dữ liệu được lưu trữ trên CD ROM theo phương pháp mã hoá EFM (Eight to Fourteen Modulation) Tương tự như trên điã từ, giá trị 0 và 1 không phải là giá trị lỗ và vùng trống mà là giá trị chuyển đổi

CD ghi lại được CD-R (CD-Recordable) là loại điã quang từng được gọi là WORM (Write Once, Read Multiple) Điã này có cấu trúc tương tự như CD thường Lớp chứa dữ liệu là lớp polymer hữu cơ (cyanine và phthalocyanine) Khi tia laser đốt cháy, lớp mày này chuyển sang màu đen và đóng vai trò các lỗ dữ liệu (pit) Có 2 phương pháp ghi CD-R:

- Ghi toàn điã một lần DAO (Disc At Once): dữ liệu toàn điã chỉ được ghi lên điã một lần, không ghi thêm lên được những lần sau

- Ghi từng rãnh TAO (Track At Once): cho phép ghi lên điã nhiều lần Chiều dài tối thiểu mỗi lần ghi là 300 khối

CD ghi lại được CD-RW (CD-ReWriteable) trong đó lớp dữ liệu lớp kim loại Nguyên tắc ghi dữ liệu dựa theo sự thay đổi trạng thái của lớp kim loại: trạng thái tinh thể (phản xạ ánh sáng - vùng trống) và trạng thái vô định hình (không phản xạ ánh sáng - vùng lỗ)

Điã quang mật độ cao DVD (Digital Video Disk hay Digital Versatile Disk) là thế hệ điã quang mới sẽ thay thế điã CD trong tương lai gần Đây là một loại điã quang có dung lượng dữ liệu lớn hơn và khả năng truy nhập nhanh hơn các điã quang

Trang 35

trước nó Dung lượng dữ liệu tính hàng GByte (~4,7GB) Tốc độ truy nhập cơ bản 1x của 1 ổ DVD là 1,321 MByte/sec (nhanh gấp 9 lần tốc độ của một ổ điã CD thường Các ổ DVD 4X đều có khả năng đọc CD-ROM với vận tốc 32X

Sự phát triển điã quang ở giai đoạn 3 là các phương tiện quang có thể xoá được bằng cách dùng kỹ thuật quang-từ (MO->magneto-optical) Điã plastic được bao phủ một hỗn hợp kim loại có nhiều chất lạ như terbium và gadolinium Các kim loại này có tính chất rất đáng quan tâm là ở nhiệt độ thấp chúng không nhạy cảm với từ trường, nhưng ở nhiệt độ cao, cấu trúc phân tử của chúng tự sắp thẳng hàng theo bất cứ hướng nào hiện có

Người ta sử dụng tính chất này để ghi thông tin, các đầu đọc của ổ điã bao gồm một bộ phát tia laser và một nam châm Bộ phát tia laser bắn ra một xung ánh sáng cực ngắn vào kim loại, tức thời làm gia tăng nhiệt độ nhưng không tạo thành một pit trên bề mặt Đồng thời nam châm cũng phát ra một từ trường theo 1 trong 2 hướng Khi xung laser hết, kim loại đã được từ hoácó thể ở 1 trong 2 hướng, biểu thị là 0 hoặc 1 Thông tin này có thể đọc theo cùng cách như với CD ROM bằng cách dùng một tia laser có bức xạ yếu hơn nhiều Điã này có thể xoá và ghi đè lên giống như cách đã ghi lần đầu

IV - CÁC THIẾT BỊ VÀO / RA

Trước khi một máy tính thực hiện một việc nào đó, ta phải cung cấp cho nó một chương trình và các dữ liệu kèm theo Sau khi thực hiện xong, máy tính phải thông báo kết quả cho người sử dụng Việc đưa thông tin vào máy tính và lấy thông tin ra khỏi máy tính được gọi là vào/ra

Không phải tất cả thông tin vào ra đều được dự định dành cho con người Một kính thiên văn mặt trời hoạt động nhờ máy tính có thể thực hiện nhập dữ liệu từ các thiết bị quan sát mặt trời Một máy tính điều khiển 1 thiết bị hoá học tự động có thể trực tiếp xuất dữ liệu tới các máy thông qua thiết bị để điều hoà các chất hoá học được sinh ra

Có 2 cách tổ chức vào/ra thường sử dụng trong máy tính ngày nay Các mainframe lớn sử dụng thiết kế được trình bày trong hình 2.16 Trong thiết kế này, một hệ thống máy tính bao gồm 1 CPU (Hoặc có thể nhiều CPU), 1 bộ nhớ và một hoặc nhiều bộ xử lý vào/ra (I/O processor) gọi là các kênh dữ liệu (data channel) Tất cả các thiết bị vào/ra đều được nối với các kênh

Khi muốn thực hiện vào/ra , CPU nạp 1 chương trình đặc biệt vào một trong các kênh và yêu cầu kênh đó thực hiện Kênh sẽ tự điều khiển tất cả các việc vào/ra tới

Trang 36

và từ bộ nhớ để CPU tự do làm những việc khác Khi thực hiện xong, kênh gửi tới CPU một tín hiệu đặc biệt gọi là ngắt (interrupt) để buộc CPU ngừng bất kỳ điều gì đang làm và chú ý đến kênh đó Thuận lợi của cách tổ chức này là cho phép CPU hoàn toàn không quan tâm đến công việc giữa thiết bị vào/ra với kênh Bằng cách này ta có thể thực hiện việc tính toán và vào / ra cùng một lúc

Hình 2.16

Vì các mainframe tạo ra một tải vào/ra lớn, nên chúng thường được trang bị ít nhất 3 bus Bus bộ nhớ (memory bus) cho phép kênh đọc và ghi các từ dữ liệu (data word) từ bộ nhớ Bus vào/ra cho phép bộ xử lý trung tâm phát các lệnh tới các kênh và cho phép các kênh ngắt bộ xử lý trung tâm Cuối cùng, bus thứ 3 cho phép bộ xử lý trung tâm truy xuất bộ nhớ mà không phải dùng tới những bus khác

Các máy vi tính dùng một cấu trúc hệ thống đơn giản hơn như trong hình 2.17 Hầu hết các máy vi tính này có một khung chứa các card với 1 board mạch in lớn được gọi là board chính (mainboard) Board chính chứa một chip vi xử lý, bộ nhớ và các chip hỗ trợ khác

Trang 37

Hình 2.17

Cấu trúc logic của máy vi tính được trình bày trong hình 2.18 Hấu hết các máy vi tính có 1 bus gọi là bus hệ thống (system bus) dùng để kết nối CPU, bộ nhớ và các thiết bị vào/ra Mỗi thiết bị vào ra có hai phần, phần chứa các mạch điện tử gọi là bộ điều khiển (controller), phần kia chứa chính các thiết bị vào/ra như ổ đĩa, màn hình… Bộ điều khiển thường được đặt trên 1 card và cắm vào khe mở rộng trên board chính trừ các bộ điều khiển không tùy chọn (như bàn phím), thường được đặt trên board chính

Trang 38

stealing) và làm tốc độ máy tính chậm lại So sánh với mainframe có nhiều bus thì hiện tượng này không thể xảy ra

Ngày nay người ta dùng nhiều loại thiết bị vào/ra Một vài thiết bị vào/ra phổ biến sẽ được đề cấp đến sau đây:

1 Bàn phím:

Bàn phím có nhiều loại khác nhau

Đơn giản nhất là một chuyển mạch (switch) để tạo ra một tiếp xúc về điện khi ấn phím Với loại phức tạp hơn, dưới mỗi phím có một nam châm đi qua 1 cuộn dây khi gõ phím, vì vậy một dòng điện cảm ứng được nhận biết

Ngoài loại chuyển mạch bằng cơ khí, các bàn phím hiện nay còn sử dụng loại chuyển mạch bằng tụ điện có ưu điểm chống mòn và bụi bám Chuyển mạch có 2 bản bằng nhựa nối thành ma trận chuyển mạch được thiết kế để phát hiện những thay đổi về điện dung của mạch Khi ấn phím, bản trên di chuyển so với bản dưới cố định làm điện dung thay đổi Loại chuyển mạch này không dựa vào tiếp xúc bằng kim loại nên tránh được mòn và bụi, cũng như không bị kẹt phím

Ngoài ra còn có loãi phím cảm biến điện từ (thay đổi dòng điện theo hiệu ứng Hall)

Bàn phím trong hệ thống IBM PC và tương thích ban đầu thực chất là một bộ xử lý bàn phím truyền thông với máy tính bằng một liên kết dữ liệu riêng biệt nhằm truyền nối tiếp những khung 11 bit (8 bit dữ liệu và các bit điều khiển) nhưng không theo chuẩn RS-232C Bộ xử lý bàn phím là chip vi điều khiển 8048 hoặc 8049 hoặc các chip tương thích như 6805 của Motorola Bộ xử lý đọc ma trận phím, giải mã các tín hiệu ấn phím, chuyển đổi mã vi trí của phím thành mã quét (scan code) rồi truyền đến board chính của máy tính

2 Màn hình:

Màn hình chủ yếu gồm một đèn tia âm cực CRT (Cathode Ray Tube) và các nguồn cung cấp điện CRT chứa một súng bắn một chùm tia điện tử đập vào màn huỳnh quang đặt ở phía trước đèn, như trong hình 2.20 (các màn hình màu có 3 súng điện tử tương ứng với 3 màu đỏ, xanh lá cây và xanh dương) Trong thời gian quét ngang, chùm tia điện tử quét qua

Trang 39

Hình 2 20 màn hình trong một thời gian khoảng 50 microsec và vạch ra một đường gần như nằm ngang trên màn hình Kế đến chùm tia điện tử thực hiện một đường hồi ngang trở về cạnh bên trái để bắt đầu lần quét kế tiếp

Tia quét ngang được điều khiển bởi một điện áp tăng tuyến tính đưa đến các phiến làm lệch ngang đặt ở bên trái và bên phải súng điện tử Việc quét dọc được điều khiển bởi một điện áp tuyến tính tăng chậm hơn nhiều đưa đến các phiến làm lệch dọc đặt ở phía trên và dưới súng điện tử Sau 400 đến 1000 lần quét, điện áp trên các phiến làm lệch dọc và ngang được nghịch đảo cùng lúc để đặt chùm tia điện tử trở về góc phía trên bên trái của màn hình huỳnh quang Toàn bộ ảnh thường được quét lập lại từ 30 tới 60 lần trong 1 giây

Đèn CRT hiện nay có 2 kiểu: cong và phẳng Kiểu màn hình cong có mặt ngoài ở chính giữa màn hình phình ra Kiểu phẳng là loại đèn Trinitron chỉ cong theo chiều ngang và có chiều dọc phẳng

Các máy tính xách tay sử dụng bộ phận hiển thị là màn hình tinh thể lỏng (Liquid Crystal Display) Đó là chất lỏng hữu cơ mà phân tử của nó có khả năng phân cực ánh sáng dẫn đến thay đổi cường độ sáng Trường tĩnh điện được dùng để điều khiển hướng phân tử tinh thể lỏng

Màn hình tinh thể lỏng dựa trên hiệu ứng trường xoắn (twisted nematic field effect) Phân tử trong lớp tinh thể lỏng chuyển hướng 90 độ giữa hai mặt kính Aùnh sáng bên ngoài bị phân cực và xoắn theo hướng phân tử tinh thể lỏng khiến tia sáng đi qua được lớp tinh thể lỏng, lớp tinh thể lỏng có trạng thái sáng

Dùng điện cực trong suốt (thí dụ indium oxyt)nằm phía dưới lớp kính kéo phân tử tinh thể lỏngđịnh hướng theo trường tĩnh điện Tia sáng bị giữ lại trong tinh thể lỏng mà không đi qua hay phản xạ lại được nữa, lớp tinh thể lỏng có trạng thái tối

Để định hướng ánh sáng đúng theo hướng phân tử tinh thể lỏng, ta cần bộ phân cực ánh sáng Khi tia sáng thoát ra phía bên kia tinh thể lỏng ta cần bộ phân cực ánh sáng khác Nguồn sáng có thể là LED hay các loại đèn khác Nếu bố trí phía sau lớp tinh thể lỏng một lớp gương phản xạ, ta có thể dùng ánh sáng thường bên ngoài để quan sát màn hình Trường tĩnh điện một chiều có thể phá hỏng cấu trúc tinh thể, vì vậy người ta hay dùng hiệu điện thế xoay chiều Hiệu điện thế dùng cho tinh thể lỏng tương đối thấp, từ 5 đến 15V

Màn hình tinh thể lỏng theo nguyên tắc kể trên có độ tương phản rất thấp (góc nhìn 15o) Góc quan sát cũng rất hạn chế (20o từ ngang, 60o từ trên)

Trang 40

Có 3 loại thiết bị đầu cuối thường dùng: các thiết bị đầu cuối ánh xạ ký tự (character-map terminal), các thiết bị đầu cuối ánh xạ bit (bit-map terminal) hay màn hình đồ họa và các thiết bị đầu cuối chuẩn RS-232C (reference standard 232-C terminal)

• Các thiết bị đầu cuối ánh xạ ký tự Hầu hết các máy vi tính đều sử dụng sơ đồ trình bày trong hình 2.21 để hiển thị dữ liệu xuất lên màn hình Trên card truyền nối tiếp (serial communication board) là một đoạn bộ nhớ gọi là RAM video (video RAM), cũng như một số mạch điện tử dùng để truy xuất bus và tạo tín hiệu video (video signal)

Hình 2.21

Để hiển thị các ký tự, CPU sao chép chúng vào bộ nhớ RAM video dưới dạng các byte xen kẽ Mỗi ký tự được kết hợp với 1 byte thuộc tính để mô tả cách thể hiện ký tự Thuộc tính có thể bao gồm: màu sắc, cường độ, có nhấp nháy hay không? v.v… Do vậy, một màn hình có 25x80 ký tự đòi hỏi 4000 byte trong RAM video trong đó

2000 byte cho các ký tự và 2000 byte cho thuộc tính của chúng Một số card có dung lượng bộ nhớ lớn hơn để lưu giữ nhiều ảnh màn hình

Công việc của card video (video card) là lặp lại việc tìm nạp các ký tự từ RAM video và tạo ra các tín hiệu cần thiết điều khiển màn hình Toàn bộ một dòng các ký tự được tìm-nạp một lần để có thể tính được các dòng quét riêng lẻ Tín hiệu này là tín hiệu tương tự tần số cao, điều khiển việc quét chùm tia điện tử để vẽ các ký tự lên màn hình Vì card video xuất tín hiệu video nên màn hình phải đặt gần máy tính (khoảng vài met)

• Các thiết bị đầu cuối ánh xạ bit Thay đổi ở đây là màn hình không được xem như dãy 25x80 ký tự mà là một dãy các phần tử hình ảnh, gọi là pixel Mỗi pixel có thể hoặc sáng hoặc tối để biểu thị một bit thông tin Trên các máy vi tính, màn hình có thể chứa thường 480x640 pixel Trên các trạm làm việc (workstation), màn hình tiêu biểu có 1024x1024 pixel Các thiết bị đầu cuối thường dùng ánh xạ bit hơn ánh xạ ký tự được gọi là màn hình đồ họa Nhiều card video có thể hoạt động ở cả 2 chế độ ánh xạ bit và ánh xạ ký tự dưới sự điều khiển của phần mềm và ta gọi là card video đồ hoạ

Ngày đăng: 02/05/2014, 13:24

HÌNH ẢNH LIÊN QUAN

Hình 2.3: Một CPU với 5 đơn vị chức năng hoạt động song song - Giáo trình Cấu trúc máy tính
Hình 2.3 Một CPU với 5 đơn vị chức năng hoạt động song song (Trang 19)
Hình 2.4: Một máy đường ống có 5 đơn vị xử lý - Giáo trình Cấu trúc máy tính
Hình 2.4 Một máy đường ống có 5 đơn vị xử lý (Trang 19)
Hình 2.6: Bộ xử lý dãy của máy ILLIAC IV  Cấu trúc này bao gồm một mạng vuông các phần tử bộ xử lý / bộ nhớ - Giáo trình Cấu trúc máy tính
Hình 2.6 Bộ xử lý dãy của máy ILLIAC IV Cấu trúc này bao gồm một mạng vuông các phần tử bộ xử lý / bộ nhớ (Trang 21)
Hình 2.7  Thí dụ: Trong hình 2.7 a cần ít nhất 4 bit để diễn tả các số từ 0 đến 11. Tuy nhiên  chỉ cần 3 bit để diễn tả địa chỉ trong các hình 2.7b và 2.7c - Giáo trình Cấu trúc máy tính
Hình 2.7 Thí dụ: Trong hình 2.7 a cần ít nhất 4 bit để diễn tả các số từ 0 đến 11. Tuy nhiên chỉ cần 3 bit để diễn tả địa chỉ trong các hình 2.7b và 2.7c (Trang 23)
Hình 2.9  Kích thước từ  Số bit kiểm tra  Kích thước chung  Phaàn traêm - Giáo trình Cấu trúc máy tính
Hình 2.9 Kích thước từ Số bit kiểm tra Kích thước chung Phaàn traêm (Trang 26)
Hình 2.13 : Khoảng cách đầu từ với mặt đĩa - Giáo trình Cấu trúc máy tính
Hình 2.13 Khoảng cách đầu từ với mặt đĩa (Trang 31)
Hình 2.14: Hoạt động đĩa mềm - Giáo trình Cấu trúc máy tính
Hình 2.14 Hoạt động đĩa mềm (Trang 32)
Hình 2.23 :Các phương thức truyền ( a) Truyền bất đồng bộ - Giáo trình Cấu trúc máy tính
Hình 2.23 Các phương thức truyền ( a) Truyền bất đồng bộ (Trang 44)
Hình 2.25: Cấu tạo của chuột cơ khí-quang - Giáo trình Cấu trúc máy tính
Hình 2.25 Cấu tạo của chuột cơ khí-quang (Trang 47)
Hình 2.28: Nguyên tắc hoạt động máy in phun mực - Giáo trình Cấu trúc máy tính
Hình 2.28 Nguyên tắc hoạt động máy in phun mực (Trang 52)
Hình 2.29: Nguyên tắc hoạt động máy in phun bọt hơi - Giáo trình Cấu trúc máy tính
Hình 2.29 Nguyên tắc hoạt động máy in phun bọt hơi (Trang 53)
Hình 3.2 Hệ thống máy tính có nhiều bus - Giáo trình Cấu trúc máy tính
Hình 3.2 Hệ thống máy tính có nhiều bus (Trang 61)
Hình 3.9 : Các tín hiệu trên IBM PC bus - Giáo trình Cấu trúc máy tính
Hình 3.9 Các tín hiệu trên IBM PC bus (Trang 75)
Hình 3.10:Sơ đồ đơn giản bus PC chuẩn sử dụng với 8088 - Giáo trình Cấu trúc máy tính
Hình 3.10 Sơ đồ đơn giản bus PC chuẩn sử dụng với 8088 (Trang 76)
Hình 3.11: Phân loại bộ nhớ bán dẫn - Giáo trình Cấu trúc máy tính
Hình 3.11 Phân loại bộ nhớ bán dẫn (Trang 77)
Hình 3.12: Một thí dụ về giải mã 2 bước cho ma trận ROM 128x128 - Giáo trình Cấu trúc máy tính
Hình 3.12 Một thí dụ về giải mã 2 bước cho ma trận ROM 128x128 (Trang 78)
Hình 3.13: Một thí dụ sơ đồ cấu tạo của 1 chip DRAM - Giáo trình Cấu trúc máy tính
Hình 3.13 Một thí dụ sơ đồ cấu tạo của 1 chip DRAM (Trang 79)
Hình 3.16:   (a) Giải mã địa chỉ toàn phần - Giáo trình Cấu trúc máy tính
Hình 3.16 (a) Giải mã địa chỉ toàn phần (Trang 84)
Hình 4.1 b) trình bày một thanh ghi 16 bit với 2 bus xuất , mỗi bus được điều  khiển bơiû một tín hiệu OE khác nhau - Giáo trình Cấu trúc máy tính
Hình 4.1 b) trình bày một thanh ghi 16 bit với 2 bus xuất , mỗi bus được điều khiển bơiû một tín hiệu OE khác nhau (Trang 88)
Hình 4.3: hệ tối thiểu các phép vi toán - Giáo trình Cấu trúc máy tính
Hình 4.3 hệ tối thiểu các phép vi toán (Trang 89)
Hình 4.1 (a) mô tả một thanh ghi 8 bit được nối với một bus nhập và một bus  xuất. Thanh ghi bao gồm 8 flip flop loại D, mỗi flip flop lưu trữ 1 bit và được nối với  bus xuất qua một cổng đệm không đảo - Giáo trình Cấu trúc máy tính
Hình 4.1 (a) mô tả một thanh ghi 8 bit được nối với một bus nhập và một bus xuất. Thanh ghi bao gồm 8 flip flop loại D, mỗi flip flop lưu trữ 1 bit và được nối với bus xuất qua một cổng đệm không đảo (Trang 92)
Hình 4.3: hệ tối thiểu các phép vi toán - Giáo trình Cấu trúc máy tính
Hình 4.3 hệ tối thiểu các phép vi toán (Trang 94)
Hình 5.1:Cấu trúc bộ nhớ của 8088 - Giáo trình Cấu trúc máy tính
Hình 5.1 Cấu trúc bộ nhớ của 8088 (Trang 96)
Hình 5.5 tập lệnh của 8088 - Giáo trình Cấu trúc máy tính
Hình 5.5 tập lệnh của 8088 (Trang 100)
Hình 5.7: Địa chỉ trực tiếp - Giáo trình Cấu trúc máy tính
Hình 5.7 Địa chỉ trực tiếp (Trang 104)
Hình 5.8: Địa chỉ gián tiếp - Giáo trình Cấu trúc máy tính
Hình 5.8 Địa chỉ gián tiếp (Trang 105)
Hình 5.9: Hoạt động của một ngăn xếp - Giáo trình Cấu trúc máy tính
Hình 5.9 Hoạt động của một ngăn xếp (Trang 108)
Hình 6.3: Cấp phát không gian đĩa - Giáo trình Cấu trúc máy tính
Hình 6.3 Cấp phát không gian đĩa (Trang 121)
Hình 6.5 : Theo dõi track của các sector - Giáo trình Cấu trúc máy tính
Hình 6.5 Theo dõi track của các sector (Trang 123)

TỪ KHÓA LIÊN QUAN

w