Thiết kế hệ thống System Design bao gồm tất cả các thành phần phầncứng khác bên trong một hệ thống tính toán chẳng hạn: - Các đường kết nối hệ thống như bus máy tính và switch - Các bộ
Trang 1UỶ BAN NHÂN DÂN TỈNH ĐỒNG THÁP
(Ban hành kèm theo Quyết định số /QĐ-CĐCĐ ngày tháng năm 2017
của Hiệu trưởng trường Cao đẳng Nghề Đồng Tháp)
Đồng Tháp, năm 2017
Trang 2TUYÊN BỐ BẢN QUYỀNTài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợcphép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và thamkhảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinhdoanh thiếu lành mạnh sẽ bị nghiêm cấm
Trang 4LỜI GIỚI THIỆUCấu trúc máy tính là một thuật ngữ thường được sử dụng để nói về các vấn đềliên quan đến tổ chức và thiết kế các máy tính điện tử số Nội dung của nghiêncứu này gắn liền với việc thiết kế phần cứng của các hệ thống máy tính cũngnhư việc thiết kế đó phụ thuộc vào các hệ thống phần mềm.
Trong kỹ thuật máy tính, cấu trúc máy tính là mô tả các khái niệm và cấu trúchoạt động căn bản của một hệ thống máy tính Nó là một bản mô tả có tính chấtchức năng về các yêu cầu và những sự hoạt động cho những bộ phận khác nhaucủa một máy tính - tập trung chủ yếu vào cách tổ chức bên trong hệ thống máytính, việc CPU hoạt động nội tại như thế nào và truy cập các địa chỉ trong bộnhớ bằng cách nào
Nó cũng có thể được định nghĩa như là khoa học và nghệ thuật lựa chọn và kếtnối các thành phần phần cứng để tạo thành các máy tính đáp ứng được các mụcđích về tính năng, hiệu suất và giá cả
Cấu trúc máy tính bao gồm:
Vi kiến trúc (Microarchitecture), còn gọi là tổ chức máy tính (Computerorganization) là một mô tả bậc thấp, cụ thể hơn về hệ thống Mô tả nàynói về các bộ phận cấu thành của hệ thống được kết nối với nhau như thếnào và chúng hoạt động tương hỗ như thế nào để thực hiện kiến trúc tậplệnh
Thiết kế hệ thống (System Design) bao gồm tất cả các thành phần phầncứng khác bên trong một hệ thống tính toán chẳng hạn:
- Các đường kết nối hệ thống như bus (máy tính) và switch
- Các bộ điều khiển bộ nhớ (memory controller) và các cấp bộ nhớ
- Các cơ chế CPU off-load như Direct memory access (truy nhập bộnhớ trực tiếp)
- Các vấn đề như đa xử lý (multi-processing)
Nội dung bài giảng được phân bố gồm 4 chương:
Chương 1: Tổng quan về kiến trúc máy tính
Giới thiệu lịch sử và thành quả phát triển của các loại máy tính điện tử; các kháiniệm cơ bản về thông tin, phương pháp mã hóa thông tin trong máy tính điện tửChương 2: Bộ xử lý
Trang 5Giới thiệu tổ chức, nguyên lý hoạt động của các bộ phận bên trong bộ xử lýnhằm thực hiện nhiệm vụ mà kiến trúc phần mềm đã đề ra; các kỹ thuật nângcao hiệu quả hoạt động của các bộ xử lý hiện đại.
Chương 3: Các cấp bộ nhớ
Giới thiệu chức năng, nguyên lý hoạt động của các loại bộ nhớ, tổ chức các cấp
bộ nhớ và các kỹ thuật nâng cao hiệu quả hoạt động của bộ nhớ trong máy tínhđiện tử
Chương 4: Nhập – Xuất
Giới thiệu chức năng, nhiệm vụ các thiết bị nhập xuất trong hệ thống máy tính;nguyên tắc hoạt động của một số thiết bị lưu trữ thông dụng; giới thiệu hệ thốngkết nối cơ bản giữa các bộ phận trong máy tính và cách giao tiếp giữa ngoại vi
và bộ xử lý; phương pháp lưu trữ an toàn dữ liệu trên đĩa cứng
Để hoàn thiện giáo trình này tác giả xin chân thành cảm ơn tất cả các Thầy cô làgiảng viên trường Cao đẳng Cộng đồng Đồng Tháp, trường Cao đẳng Nghề AnGiang, trường Trung cấp Hồng Ngự, trường Trung cấp Tháp Mười; các Anh(Chị) đại diện Sở Lao động Thương binh và Xã hội, đại diện các công ty, doanhnghiệp đã tham gia đóng góp ý kiến
Mặc dù tác giả đã có nhiều cố gắng trong việc biên soạn tài liệu này, song khôngthể tránh khỏi những thiếu sót Rất mong nhận được những ý kiến đóng góp quýbáu từ các bạn đọc để bài giảng ngày càng hoàn thiện hơn
Đồng Tháp, ngày 30 tháng 10 năm 2020
Chủ biênHuỳnh Văn Khỏe
Trang 7MỤC LỤC
Trang
LỜI GIỚI THIỆU 1
CHƯƠNG 1: TỔNG QUAN VỀ KIẾN TRÚC MÁY TÍNH 1
1 Một số khái niệm và nguyên lý cơ bản 1
1.1 Nguyên tắc tổ chức 1
1.2 Ngôn ngữ máy và cấp kiến trúc máy tính 2
2 Lịch sử phát triển và ứng dụng của máy tính điện tử 4
2.1 Lịch sử phát triển 4
2.2 Phân loại máy tính 7
2.3 Các lĩnh vực ứng dụng của máy tính 8
3 Các hệ thống số 8
3.1 Nguyên lý của việc viết số 8
3.2 Biến đổi qua lại giữa các hệ thống số 11
4 Thông tin và mã hóa thông tin 19
4.1 Số nguyên có dấu 19
4.2 Cách biểu diễn số với dấu chấm động 21
4.3 Biểu diễn các số thập phân 23
4.4 Biểu diễn các ký tự 23
CÂU HỎI VÀ BÀI TẬP CHƯƠNG 1 28
CHƯƠNG 2: BỘ XỬ LÝ 30
1 Các thành phần cơ bản của một máy tính 30
2 Kiến trúc CISC, RISC 32
2.1 Bộ điều khiển vi chương trình (CISC) 34
2.2 Bộ điều khiển mạch điện tử 34
3 Tổ chức bộ xử lý trung tâm CPU 35
3.1 Đường đi dữ liệu 35
3.2 Các yếu tố tác động đến hiệu suất của CPU 36
Trang 83.3 Nguyên lý hoạt động của CPU 38
3.4 Phân loại CPU 39
4 Thực hiện lệnh mã máy bên trong bộ xử lý 40
4.1 Đọc lệnh 41
4.2 Giải mã lệnh và đọc các thanh ghi nguồn 41
4.3 Thi hành lệnh 41
4.4 Thâm nhập bộ nhớ trong hoặc nhảy lần cuối 42
4.5 Lưu trữ kết quả 42
5 Ngắt quãng 42
6 Kỹ thuật ống dẫn 43
7 Khó khăn trong kỹ thuật ống dẫn 45
7.1 Khó khăn do cấu trúc 45
7.2 Khó khăn do số liệu 45
7.3 Khó khăn do điều khiển 46
8 Siêu ống dẫn 47
9 Siêu vô hướng 48
10 Máy tính song song 49
CÂU HỎI VÀ BÀI TẬP CHƯƠNG 2 53
CHƯƠNG 3: CÁC CẤP BỘ NHỚ 54
1 Phân loại các bộ nhớ bán dẫn 54
2 Các cấp bộ nhớ 59
3 Bộ nhớ Cache 60
3.1 Hiệu quả của Cache 67
3.2 Cache duy nhất, cache riêng lẻ 68
3.3.Các mức Cache 68
4 Bộ nhớ trong 69
5 Bộ nhớ ảo 71
CÂU HỎI VÀ BÀI TẬP CHƯƠNG 3 77
CHƯƠNG 4: NHẬP – XUẤT 79
Trang 91 Đĩa từ 79
2 Đĩa cứng thể rắn – SSD 81
3 Đĩa quang 82
4 Các loại thẻ nhớ 83
5 Bus nối ngoại vi vào bộ xử lý và bộ nhớ trong 84
6 Các chuẩn về bus 87
7 Giao diện giữa bộ xử lý với các thiết bị vào ra 87
8 Một số biện pháp an toàn dữ liệu trong việc lưu trữ thông tin trong đĩa từ 89
CÂU HỎI CHƯƠNG 4 95
TÀI LIỆU THAM KHẢO 96
Trang 10GIÁO TRÌNH MÔN HỌCTên môn học: CẤU TRÚC MÁY TÍNH
Mã môn học: MH10KC5480102
Thời gian thực hiện môn học: 45 giờ (Lý thuyết: 42 giờ; Thực hành, thí nghiệm,thảo luận, bài tập: 0 giờ; Kiểm tra thường xuyên, định kỳ: 2 giờ; Thi/kiểm trakết thúc môn học: 1 giờ)
I VỊ TRÍ, TÍNH CHẤT MÔN HỌC
- Vị trí: Môn học Cấu trúc máy tính được bố trí học sau các môn học chung
và học cùng với mô đun lắp ráp cài đặt máy tính
- Tính chất: Là môn học chuyên môn thuộc môn học đào tạo nghề và nền tảngcho các mô đun chuyên ngành
II MỤC TIÊU MÔN HỌC
- Về Kiến thức:
+ Trình bày được lịch sử của máy tính, các thế hệ máy tính và cách phân loạimáy tính
+ Mô tả các thành phần cơ bản của Cấu trúc máy tính
+ Trình bày được chức năng và nguyên lý hoạt động bo mạch chủ, bộ xử lýtrung tâm, Ram và HDD
+ Trình bày phương pháp lưu trữ dữ liệu đối với bộ nhớ
+ Nhận biết được các thiết bị ngoại vi
+ Mô tả diễn tiến thi hành một lệnh mã máy và một số kỹ thuật xử lý thôngtin: ống dẫn, siêu ống dẫn, siêu vô hướng
- Kỹ năng:
+ Thực hiện tính và chuyển đổi được các hệ đếm, các phép toán nhị phân.+ Có khả năng lựa chọn các thiết bị cần thiết cho một bộ máy tính Desktop
- Về năng lực tự chủ và trách nhiệm:
+ Có khả năng phân tích và giải thích các linh kiện của một máy tính
+ Bố trí làm việc khoa học đảm bảo an toàn cho người và phương tiện họctập
Trang 11III NỘI DUNG MÔN HỌC
Kiểmtra
1 Chương 1: Tổng quan về kiến trúc
Trang 13CHƯƠNG 1TỔNG QUAN VỀ KIẾN TRÚC MÁY TÍNH
về lịch sử và thành quả phát triển của các loại máy tính điện tử; các khái niệm cơbản về thông tin, phương pháp mã hóa thông tin trong máy tính điện tử
Mục tiêu
Giới thiệu lịch sử và thành quả phát triển của các loại máy tính điện tử; cáckhái niệm cơ bản về thông tin, phương pháp mã hóa thông tin trong máy tínhđiện tử
1 Một số khái niệm và nguyên lý cơ bản
1.1 Nguyên tắc tổ chức
Máy tính là một khái niệm chỉ mọi phương tiện thường dùng để thực hiệncác phép biến đổi toán học như: que tính, bàn tính, máy tính điện cơ, máy tínhđiện tử,…
Do được xây dựng trên cơ sở sử dụng các linh kiện và mạch điện tử như:transistor, vi mạch bán dẫn, … máy tính điện tử là một loại thiết bị tự động chophép thu thập, lưu trữ và xử lý các dữ liệu rất hiệu quả
Tùy thuộc nguyên lý hoạt động máy tính điện tử được phân thành hai loại:máy tính tương tự và máy tính số Máy tính tương tự (analog computer) hoạtđộng với tín hiệu tương tự có biên độ biến thiên một cách liên tục theo thời gian.Máy tính số (digital computer) chỉ làm việc với các tín hiệu số, đó là loại tínhiệu tương tự đã được rời rạc hóa về thời gian và lượng tử hóa về biên độ Ngàynay, do máy tính số được dùng rất phổ biến nên khi nói đến máy tính thườnghiểu ngầm là máy tính số
Một máy tính số được phát triển trên cơ sở của 2 phần: phần cứng và phầnmềm phần cứng (hardware) gồm những đối tượng vật lý hữu hình như: vi mạch,
Trang 14bản mạch in, bộ nhớ, màn hình, bàn phím … Phần mềm (software) gồm cácthuật giải và sự thể hiện trên máy tính của nó là các chương trình Các chươngtrình bao gồm các lệnh hay chỉ thị Chương trình có thể nhập vào máy tính từbàn phím, trình bày trên màn hình, ghi trên đĩa từ … mà nội dung chủ yếu của
nó là các dãy lệnh Từ đầu những năm 80, do áp dụng những thành tựu về côngnghệ phần cứng hiện đại, đặc biệt là kỹ thuật mạch tích hợp, với cùng một khảnăng tính toán các máy tính có kích thước, công suất tiêu hao đủ nhỏ và giáthành giảm xuống thấp cho phép một cá nhân có thể sở hữu một máy tính Từ đómáy tính cá nhân (personal computer - PC) hay máy vi tính (microcomputer) rađời, theo đúng tên gọi của nó là máy tính có thể sử dụng cho một người, khácvới máy tính lớn (mainframe) được dùng bởi nhiều người qua các thiết bị đầucuối (terminal) Chính sự khác biệt này đã mở ra một kỷ nguyên áp dụng PCtrong rất nhiều lĩnh vực khoa học công nghệ và đời sống
1.2 Ngôn ngữ máy và cấp kiến trúc máy tính
Một chuỗi các lệnh mô tả cách thực hiện một công việc nào đó trong máytính gọi là chương trình Các mạch điện tử trong máy tính số có thể nhận biết vàthực thi trực tiếp một tập giới hạn các lệnh đơn giản Các mạch này được xâydựng trên cơ sở nhận biết và xử lý các số nhị phân Muốn thực thi các chươngtrình trước tiên phải biến đổi chúng sang các lệnh cơ bản của một tập lệnh mãmáy (dạng nhị phân) nhất định để thi hành Các lệnh cơ bản đó có thể hình thànhnên một ngôn ngữ có khả năng giúp con người liên lạc với máy tính Đó là ngônngữ máy do các hãng sản xuất máy tính cung cấp cho người dùng Tập lệnh mãmáy này được chọn lựa khi thiết kế máy tính dựa trên các cơ sở phù hợp với khảnăng và các yêu cầu về hiệu suất của máy Các lệnh cũng như số liệu trong tậplệnh máy đều là những số nhị phân, ngôn ngữ máy này gọi là L1 Ngôn ngữ L1không gần gũi với con người nên cần thiết kế các tập lệnh mới sao cho gần gũihơn với ngôn ngữ con người các lệnh mới này cũng hình thành một ngôn ngữgọi là ngôn ngữ L2 Có 2 phương pháp cho phép thực thi các chương trình viếtbằng L2 Thứ nhất, trước tiên thay thế mỗi lệnh của L2 bằng một chuỗi các lệnhtương đương trong ngôn ngữ máy L1, đây được gọi là quá trình dịch Thứ hai,viết một chương trình đặc biệt bằng L1, chương trình này xem các chương trìnhviết bằng L2 như là dữ liệu vào và thực thi chúng bằng cách khảo sát tuần tựtừng lệnh và thi hành trực tiếp chuỗi các lệnh tương đương trong L1, đây đượcgọi là thông dịch và chương trình thực hiện sự thông dịch gọi là trình thông dịch
Trang 15Cũng như vậy, có thể phát triển một tập các lệnh mới nữa hướng về conngười hơn để hình thành ngôn ngữ mới L3 Các chương trình viết trong L3 hoặc
sẽ được dịch sang L2 hoặc được thực thi bởi một trình thông dịch viết trong L2
Việc phát triển ra một chuỗi các ngôn ngữ, mỗi ngôn ngữ thích hợp hơn
so với ngôn ngữ trước đó có thể tiếp tục không ngừng cho đến khi nhận đượcngôn ngữ thích hợp nhất Chỉ có các chương trình viết bằng ngôn ngữ máy cấpL1 mới được thực thi trực tiếp bởi các mạch điện tử mà không cần sự can thiệpcủa biên dịch hoặc thông dịch Các chương trình viết bằng L2, L3, …, Ln hoặcphải được thông dịch bởi một trình thông dịch chạy trên cấp thấp hơn hoặc phảiđược dịch sang ngôn ngữ khác tương ứng với cấp thấp hơn
Máy tính được xem xét như là một hệ thống các cấp có thứ bậc cho ta một kiếntrúc hoặc một cơ cấu tổ chức tốt nhằm tìm hiểu cách tổ chức các máy tính
5
Dịch (trình biên dịch)4
Trình hợp dịch3
Dịch một phần2
Trình thông dịch1
Các vi chương trình0
Hình 1.1 Cấu trúc phân cấp của máy tính cơ bản
Cấp 0, cấp logic số là phần cứng của máy tính trong đó các mạch điện tử của cấpnày thực thi các chương trình ngôn ngữ máy của cấp 1
Cấp 1, cấp ngôn ngữ máy thực sự ở đây có một chương trình gọi là vi chươngtrình (microprogram) làm nhiệm vụ thông dịch các lệnh của cấp 2
Mỗi máy cấp 1 có một hoặc nhiều vi chương trình chạy trên chúng Mỗi vichương trình xác định hoàn toàn một ngôn ngữ cấp 2, đây là cấp máy quy ước
Cấp ngôn ngữ bậc cao và hướng đối tượng
Cấp máy
hệ điều hành Cấp hợp ngữ
Cấp lệnh máy (lệnh vĩ mô)
Cấp logic số (các mạch điện tử số) Cấp vi lệnh (lệnh vi mô)
Trang 16Cấp 3 thường là cấp hỗn hợp, hầu hết các lệnh trong ngôn ngữ cấp này cũng ởtrong ngôn ngữ cấp 2, thêm vào đó lại có một tập các lệnh mới, một tổ chức bộnhớ khác, khả năng chạy hai hay nhiều chương trình song song và nhiều đặctrưng khác Các tiện nghi mới thêm vào ở đây được thực thi bởi một trình thôngdịch chạy trên cấp 2 gọi là hệ điều hành (operating system)
Cấp 4 gọi là cấp hợp ngữ (assembly language level), cấp này cung cấp các từ gợinhớ, cho phép thuận tiện trong việc viết chương trình hơn Các chương trình viếtbằng hợp ngữ trước tiên được dịch sang ngôn ngữ cấp 1, 2 hoặc 3, sau đó đượcthông dịch bởi máy ảo hoặc thực tương ứng Chương trình thực hiện việc dịchgọi là trình hợp dịch (assembler)
Cấp 5 bao gồm các ngôn ngữ được thiết kế dành cho những người lập trình ứngdụng Chúng được gọi là ngôn ngữ cấp cao như: Pascal, C, Fortran, … và cácngôn ngữ lập trình hướng đối tượng như C++, J++ Các chương trình viết bằngngôn ngữ này thường được dịch sang cấp 3 hoặc cấp 4 bằng các trình dịch gọi làtrình biên dịch (compiler)
Còn các cấp trên nữa bao gồm những tập hợp các chương trình được thiết kế
để tạo ra các máy dành riêng cho các ứng dụng đặc biệt như trong quản lý, giáodục, thiết kế chip,…
Tóm lại, các máy tính được thiết kế thành một chuỗi các cấp, mỗi cấp đượcxây dựng trên cấp trước đó Mỗi cấp biểu thị một quan điểm trừu tượng riêng,với các đối tượng và các thao tác khác nhau
2 Lịch sử phát triển và ứng dụng của máy tính điện tử
2.1 Lịch sử phát triển
Sự phát triển của máy tính được xác định dựa trên sự tiến bộ của các côngnghệ chế tạo các linh kiện cơ bản của máy tính như: bộ xử lý, bộ nhớ, các ngoạivi,…Ta có thể nói máy tính điện tử số trải qua bốn thế hệ liên tiếp Việc chuyển
từ thế hệ trước sang thế hệ sau được đặc trưng bằng một sự thay đổi cơ bản vềcông nghệ
2.1.1 Thế hệ thứ nhất (1946-1957)
Trang 17Hình 1.2 Máy tính ENIAC
ENIAC (Electronic Numerical Integrator and Computer) là máy tính điện tử
số đầu tiên do Giáo sư Mauchly và người học trò Eckert tại Đại họcPennsylvania thiết kế vào năm 1943 và được hoàn thành vào năm 1946 Đây làmột máy tính khổng lồ với thể tích dài 20 mét, cao 2,8 mét và rộng vài mét.ENIAC bao gồm: 18.000 đèn điện tử, 1.500 công tắc tự động, cân nặng 30 tấn,
và tiêu thụ 140KW giờ Nó có 20 thanh ghi 10bit (tính toán trên số thập phân)
Có khả năng thực hiện 5.000 phép toán cộng trong một giây Công việc lập trìnhbằng tay bằng cách đấu nối các đầu cắm điện và dùng các ngắt điện
Giáo sư toán học John Von Neumann đã đưa ra ý tưởng thiết kế máy tính IAS(Princeton Institute for Advanced Studies): chương trình được lưu trong bộ nhớ,
bộ điều khiển sẽ lấy lệnh và biến đổi giá trị của dữ liệu trong phần bộ nhớ, bộlàm toán và luận lý (ALU: Arithmetic And Logic Unit) được điều khiển để tínhtoán trên dữ liệu nhị phân, điều khiển hoạt động của các thiết bị vào ra Đây làmột ý tưởng nền tảng cho các máy tính hiện đại ngày nay Máy tính này cònđược gọi là máy tính Von Neumann
Trang 18Hình 1.3 Cấu trúc máy tính IAS
2.1.2 Thế hệ thứ 2 (1958 – 1964)
Công ty Bell đã phát minh ra transistor vào năm 1947 và do đó thế hệ thứ haicủa máy tính được đặc trưng bằng sự thay thế các đèn điện tử bằng các transistorlưỡng cực Tuy nhiên, đến cuối thập niên 50, máy tính thương mại dùngtransistor mới xuất hiện trên thị trường Kích thước máy tính giảm, rẻ tiền hơn,tiêu tốn năng lượng ít hơn Vào thời điểm này, mạch in và bộ nhớ bằng xuyến từđược dùng Ngôn ngữ cấp cao xuất hiện (như FORTRAN năm 1956, COBOLnăm 1959, ALGOL năm 1960) và hệ điều hành kiểu tuần tự (Batch Processing)được dùng Trong hệ điều hành này, chương trình của người dùng thứ nhất đượcchạy, xong đến chương trình của người dùng thứ hai và cứ thế tiếp tục
2.1.3 Thế hệ thứ 3 (1965 – 1971)
Thế hệ thứ ba được đánh dấu bằng sự xuất hiện của các mạch kết (mạch tích hợp
- IC: Integrated Circuit) Các mạch kết độ tích hợp mật độ thấp (SSI: SmallScale Integration) có thể chứa vài chục linh kiện và kết độ tích hợp mật độ trungbình (MSI: Medium Scale Integration) chứa hàng trăm linh kiện trên mạch tíchhợp
Mạch in nhiều lớp xuất hiện, bộ nhớ bán dẫn bắt đầu thay thế bộ nhớ bằngxuyến từ Máy tính đa chương trình và hệ điều hành chia thời gian được dùng.2.1.4 Thế hệ thứ 4 (1972 đến nay)
Thế hệ thứ tư được đánh dấu bằng các IC có mật độ tích hợp cao (LSI: LargeScale Integration) có thể chứa hàng ngàn linh kiện Các IC mật độ tích hợp rấtcao (VLSI: Very Large Scale Integration) có thể chứa hơn 10 ngàn linh kiện trênmạch Hiện nay, các chip VLSI chứa hàng triệu linh kiện
Trang 19Với sự xuất hiện của bộ vi xử lý (microprocessor) chứa cả phần thực hiện vàphần điều khiển của một bộ xử lý, sự phát triển của công nghệ bán dẫn các máy
vi tính đã được chế tạo và khởi đầu cho các thế hệ máy tính cá nhân
Các bộ nhớ bán dẫn, bộ nhớ cache, bộ nhớ ảo được dùng rộng rãi
Các kỹ thuật cải tiến tốc độ xử lý của máy tính không ngừng được phát triển: kỹthuật ống dẫn, kỹ thuật vô hướng, xử lý song song mức độ cao, …
2.2 Phân loại máy tính
Để phân loại máy tính người ta dựa vào khả năng và tốc độ xử lý của máy tính
Có 4 loại máy tính:
- Siêu máy tính
Một siêu máy tính (supercomputer) là một máy tính vượt trội trong khả năng vàtốc độ xử lý Thuật ngữ Siêu Tính Toán được dùng lần đầu trong báo New YorkWorld vào năm 1920 để nói đến những bảng tính (tabulators) lớn của IBM làmcho trường Đại học Columbia Siêu máy tính hiện nay có tốc độ xử lý hàngnghìn teraflop (một teraflop tương đương với hiệu suất một nghìn tỷ phéptính/giây) hay bằng tổng hiệu suất của 6.000 chiếc máy tính cá nhân hiện đạinhất hiện nay gộp lại (một máy có tốc độ khoảng từ 3-3,8 gigaflop)
Có thể hiểu siêu máy tính là hệ thống những máy tính làm việc song song
Ví dụ Siêu máy tính Sequoia của IBM có tốc độ tính toán 504 tỷ phép tính/giây,Sequoia nhanh hơn máy tính lớn của Fujitsu 1,55 lần và sử dụng hơn 1,5 triệu
bộ xử lý Trong khi đó máy tính lớn của Fujitsu có số đơn vị xử lý (CPU) ít hơngần một nửa Về năng lượng, siêu máy tính của IBM cũng tiết kiệm hơn khi nótiêu thụ 7,9 megawatts, trong khi đó máy của Fujitsu tiêu thụ 12,6 megawatts
- Máy tính lớn
Máy tính lớn (Mainframe) là loại máy tính có kích thước lớn được sử dụng chủyếu bởi các công ty lớn như các ngân hàng, các hãng bảo hiểm để chạy cácứng dụng lớn xử lý khối lượng lớn dữ liệu như kết quả điều tra dân số, thống kêkhách hàng và doanh nghiệp, và xử lý các giao tác thương mại Hiện nay thịtrường máy tính lớn do IBM chiếm 99% So với các máy tính loại nhỏ như máytính cá nhân, máy tính lớn cũng như 1 chiếc xe tăng: vững chắc, có thể nhậnhàng ngàn lệnh cùng 1 lúc
- Máy tính nhỏ (minicomputer)
Là loại máy tính nhiều người sử dụng, được thiết kế để đáp ứng các yêu cầucông việc cho một công ty nhỏ Máy tính mini mạnh hơn máy tính cá nhân
Trang 20nhưng không mạnh bằng máy tính lớn Nói chung có khoảng từ 4 đến 100 người
có thể sử dụng máy tính mini cùng một lúc
- Máy tính cá nhân (Personal computer - PC)
Là một loại máy vi tính nhỏ với giá cả, kích thước và sự tương thích của nókhiến nó hữu dụng cho từng cá nhân
2.3 Các lĩnh vực ứng dụng của máy tính
Trong các lĩnh vực khoa học và đời sống, máy tính số có thể được sử dụng trong
3 mục đích sau:
- Máy tính dùng để xử lý dữ liệu
Một máy tính có thể được coi như là một bộ xử lý dữ liệu, ví dụ như để tính tổng
số tiền công phải trả cho từng nhân viên trong cơ quan Mục đích của chươngtrình ở đây là dùng các dữ liệu nhập vào, xử lý tính toán chúng rồi lưu trữ cáckết quả vào bộ nhớ, các kết quả đó có thể hiện lên màn hình, in ra giấy in hoặclưu trữ vào đĩa
- Máy tính là một xử lý số
Máy tính thường dùng nhiều thời gian cho việc xử lý các dữ liệu dưới dạng các
ký hiệu biểu diễn cho các thông tin, hoặc có khi máy tính lại được sử dụng trongnhững ứng dụng liên quan đến một số lượng rất lớn các phép tính số học đôi khilên tới hàng tỉ phép tính cho một công việc, lúc này máy tính đóng vai trò là một
bộ xử lý số các máy tính dùng trong xử lý số thường là các máy mạnh, có bộ xử
lý rất đắt, bộ nhớ chính có tốc độ truy cập rất cao và các thiết bị ngoại vi cùng
bộ nhớ ngoài tương đối hiện đại
- Máy tính dùng trong đo lường và điều khiển tự động
Do giá thành ngày càng rẻ, máy tính ngày nay còn được đặt ở trung tâm củanhiều hệ thống điều khiển tự động Khi sử dụng như một phần tử điều khiển,máy tính thường được gắn vào một hệ thống lớn hơn và người sử dụng thườngkhông thấy được cụ thể là đã có một máy tính trong đó
3 Các hệ thống số
3.1 Nguyên lý của việc viết số
Một số được viết bằng cách đặt kề nhau các ký hiệu, được chọn trong một tậphợp xác định Mỗi ký hiệu trong một số được gọi là số mã (số hạng, digit)
Thí dụ, trong hệ thống thập phân (cơ số 10) tập hợp này gồm 10 ký hiệu rất quenthuộc, đó là các con số từ 0 đến 9:
Trang 21S10= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Khi một số gồm nhiều số mã được viết, giá trị của các số mã tùy thuộc vị trí của
nó trong số đó Giá trị này được gọi là trọng số của số mã
Thí dụ số 1998 trong hệ thập phân có giá trị xác định bởi triển khai theo đa thứccủa 10:
199810= 1x103+ 9x102+9x101+ 8x100= 1000 + 900 + 90 + 8
Trong triển khai, số mũ của đa thức chỉ vị trí của một ký hiệu trong một số vớiqui ước vị trí của hàng đơn vị là 0, các vị trí liên tiếp về phía trái là 1, 2, 3, Nếu có phần lẻ, vị trí đầu tiên sau dấu phẩy là -1, các vị trí liên tiếp về phía phải
hệ khác, ví dụ, đối với hệ nhị phân ( cơ số 2) thì tỉ lệ này là 2
Tổng quát, một hệ thống số được gọi là hệ b sẽ gồm b ký hiệu trong một tập hợp:
Sb= {S0, S1, S2, , Sb-1}Một số N được viết:
aibichính là trọng số của một ký hiệu trong Sbở vị trí thứ i
- Hệ cơ số 10 (thập phân, Decimal system)
Hệ thập phân là hệ thống số rất quen thuộc, gồm 10 số mã như nói trên
Dưới đây là vài ví dụ số thập phân:
Trang 22Hệ nhị phân gồm hai số mã trong tập hợp
= 1x8 + 3x82
i 1
+ 0x8
0 0
+ 7x8
-1 -1
+ 1x8
= 711,125
10
- Hệ cơ số 16 (thập lục phân, Hexadecimal system)
Hệ thập lục phân được dùng rất thuận tiện để con người giao tiếp với máy tính,
hệ này gồm mười sáu số trong tập hợp
S16={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }(A tương đương với 1010, B =1110, , F=1510)
Số N trong hệ thập lục phân:
N = (anan-1an-2 .ai .a0, a-1a-2 a-m)16(với ai∈ S16)
Có giá trị là:
Trang 23Khi đã có nhiều hệ thống số, việc xác định giá trị tương đương của một số trong
hệ này so với hệ kia là cần thiết Phần sau đây cho phép ta biến đổi qua lại giữacác số trong bất cứ hệ nào sang bất cứ hệ khác trong các hệ đã được giới thiệu
Đây là bài toán tìm một dãy ký hiệu cho số N viết trong hệ b
Tổng quát, một số N cho ở hệ 10, viết sang hệ b có dạng:
Trang 24Phần nguyên và phần lẻ đƣợc biến đổi theo hai cách khác nhau:
Trang 25Tiếp tục nhân PF’(N) với b, ta tìm được a và phần lẻ PF”(N).
số trong hệ b có giá trị đúng bằng phần lẻ của số thập phân, vậy tùy theo yêu cầu
về độ chính xác khi chuyển đổi mà người ta lấy một số số hạng nhất định
Giả sử bài toán yêu cầu lấy 5 số lẻ thì ta có thể dừng ở đây và
PF(N) = 0,01001
Kết quả cuối cùng là: 25,310= 11001.010012
* Đổi 1376,8510sang hệ thập lục phân
Trang 26Và kết quả cuối cùng: 1376,85 = 560,D99H
10 k
- Đổi một số từ hệ b sang hệ b và ngƣợc lại
Từ cách triển khai đa thức của số N trong hệ b, ta có thể nhóm thành từng k sốhạng từ dấu phẩy về hai phía và đặt thành thừa số chung
N = a
-m n-1
n-1
b + +a b5 5+ a b4 4+a b3 3+a b2 2+a b1 1+a b0 0+a b-1 -1+a b +a-2 -2 -3b +a-3 b
6
0 3
8 -1
7 -2 6
Trang 27* Đổi số N trên sang hệ 16 = 2
Trang 28Qua trung gian của hệ b, ta có thể đổi từ hệ bksang hệ bp Muốn đổi số N từ hệ
bksang hệ bp, trước nhất đổi số N sang hệ b rồi từ hệ b tiếp tục đổi sang hệ bp
Ví dụ:
Đổi số 1234,678sang hệ 16
1234,678 = 001 010 011 100,110 1112 = 0010 1001 1100,1101 11002 =29C,DCH
Đổi số ABCD,EFH sang hệ 8
Bátphân
Thập lụcphân
Thậpphân
Nhịphân
Bátphân
Thập lụcphân
Trang 29phân
Nhịphân
Bátphân
Thập lụcphân
Thậpphân
Nhịphân
Bátphân
Thập lụcphân
1 + 1 = 0 nhớ 1 (đem qua bít cao hơn)
Ngoài ra nếu cộng nhiều số nhị phân cùng một lúc ta nên nhớ:
- Nếu số bit 1 chẵn, kết quả là 0;
- Nếu số bit 1 lẻ kết quả là 1
- Và cứ 1 cặp số 1 cho 1 số nhớ (bỏ qua số 1 dƣ, thí dụ với 5 số 1 ta kể là
Trang 30Kết quả : (11001.1)2= (25.5)10
Trang 314 Thông tin và mã hóa thông tin
- Khái niệm thông tin:
Thông tin gắn liền với sự hiểu biết một trạng thái trong nhiều trạng thái có thể
có vào một thời điểm cho trước
Trong máy tính, các thông tin được biểu diễn bằng hệ đếm nhị phân Tuy chỉdùng 2 ký số là 0 và 1 mà ta gọi là bit nhưng hệ nhị phân đã giúp máy tính biểudiễn - xử lý được trên hầu hết các loại thông tin mà con người hiện đang sử dụngnhư văn bản, hình ảnh, âm thanh, video,
- Lượng thông tin và sự mã hoá thông tin
Thông tin được đo lường bằng đơn vị thông tin mà ta gọi là bit Lượng thông tinđược định nghĩa bởi công thức:
I = Log2(N)
Trong đó: I: là lượng thông tin tính bằng bit
N: là số trạng thái có thể có
Vậy một bit ứng với sự hiểu biết của một trạng thái trong hai trạng thái có thể
có Thí dụ, sự hiểu biết của một trạng thái trong 8 trạng thái có thể ứng với mộtlượng thông tin là:
Trang 32- Cách biểu diễn bằng trị tuyệt đối và dấu
Trong cách này, bit d là bit dấu và các bit từ d tới d cho giá trị tuyệt đối
Một Byte (8 bit) có thể biểu diễn các số có dấu từ -127 đến +127
Có hai cách biểu diễn số không là 0000 0000 (+0) và 1000 0000 (-0)
Trang 33Dùng 1 Byte (8 bit) để biểu diễn một số có dấu lớn nhất là +127 và số nhỏ nhất
là –128
Chỉ có một giá trị 0: +0 = 000000002; -0 = 000000002
- Cách biểu diễn bằng số thừa K
Còn gọi là biểu diễn số dịch, chọn một số nguyên dương k cho trước làm giá trịdịch
Trong cách này, số dương của một số N có được bằng cách “cộng thêm vào” sốthừa K được chọn sao cho tổng của K và một số âm bất kỳ luôn luôn dương Số
âm -N của số N có được bằng cách lấy K-N (hay lấy bù hai của số vừa xácđịnh)
Ví dụ: (số thừa K=128, số “cộng thêm vào” 128 là một số nguyên dương Số âm
là số lấy bù hai số vừa tính, bỏ qua số giữ của bit cao nhất) :
Các cách biểu diễn bằng "dấu , trị tuyệt đối" hoặc bằng "số bù 1" dẫn đến việcdùng các thuật toán phức tạp và bất lợi vì luôn có hai cách biểu diễn của sốkhông Cách biểu diễn bằng "dấu , trị tuyệt đối" được dùng cho phép nhân của
số có dấu chấm động
Cách biểu diễn bằng số thừa K được dùng cho số mũ của các số có dấu chấmđộng Cách này làm cho việc so sánh các số mũ có dấu khác nhau trở thành việc
so sánh các số nguyên dương
4.2 Cách biểu diễn số với dấu chấm động
Trước khi đi vào cách biểu diễn số với dấu chấm động, chúng ta xét đến cáchbiểu diễn một số dưới dạng dấu chấm xác định
Ví dụ: Trong hệ thập phân, số 25410có thể biểu diễn dưới các dạng sau:
254 * 100; 25.4 * 101; 2.54 * 102; 0.254 * 103; 0.0254 * 104; …
Trang 34Trong hệ nhị phân, số (0.00011) (tương đương với số 0.09375 ) có thể
Số chấm động được chuẩn hoá, cho phép biểu diễn gần đúng các số thập phânrất lớn hay rất nhỏ dưới dạng một số nhị phân theo một dạng quy ước Thànhphần của số chấm động bao gồm: phần dấu, phần mũ và phần định trị Như vậy,cách này cho phép biểu diễn gần đúng các số thực, tất cả các số đều có cùngcách biểu diễn
Có nhiều cách biểu diễn dấu chấm động, trong đó cách biểu diễn theo chuẩnIEEE 754 được dùng rộng rãi trong khoa học máy tính hiện nay Trong cáchbiểu diễn này, phần định trị có dạng 1,f với số 1 ẩn tăng và f là phần số lẻ
Chuẩn IEEE 754 định nghĩa hai dạng biểu diễn số chấm động:
Số chấm động chính xác đơn với định dạng được định nghĩa: chiều dài số:
32 bit được chia thành các trường: dấu S (Sign bit - 1 bit), mũ E (Exponent - 8bit), phần lẻ F (Fraction - 23 bit)
Số chấm động chính xác kép với định dạng được định nghĩa: chiều dài số:
64 bit được chia thành các trường: dấu S (Sign bit - 1 bit), mũ E (Exponent - 11bit), phần lẻ F (Fraction - 52 bit)
Trang 35S E f1 f2 …… f22 f23
Chuẩn IEEE 754 cho phép biểu diễn các số chuẩn hóa (các bit của E không cùnglúc bằng 0 hoặc bằng 1), các số không chuẩn hóa (các bit của E không cùng lúcbằng 0 và phần số lẻ f1 f2 khác không), trị số 0 (các bit của E không cùng lúcbằng 0 và phần số lẻ bằng không), và các ký tự đặc biệt (các bit của E khôngcùng lúc bằng 1 và phần lẻ khác không)
Ví dụ các bước biến đổi số thập phân -12.625 sang số chấm động chuẩn IEEE
- Bước 3: Điền các bit vào các trường theo chuẩn:
Số âm: bit dấu S có giá trị 1 Phần mũ E với số thừa K=127, ta có: E-127=3
⇒ E = 3 + 127 = 130 (1000 00102)Kết quả nhận được:1 1000 0010 1001 0100 0000 0000 0000 000
4.3 Biểu diễn các số thập phân
Một vài ứng dụng, đặc biệt ứng dụng quản lý, bắt buộc các phép tính thập phânphải chính xác, không làm tròn số Với một số bit cố định, ta không thể đổi mộtcách chính xác số nhị phân thành số thập phân và ngược lại Vì vậy, khi cần phảidùng số thập phân, ta dùng cách biểu diễn số thập phân mã bằng nhị phân(BCD: Binary Coded Decimal) theo đó mỗi số thập phân được mã với 4 số nhịphân theo bảng dưới đây:
Trang 36Số thập
phân d3 d2 d1 d0 Số thậpphân d3 d2 d1 d0
Để biểu diễn số BCD có dấu, người ta thêm số 0 trước một số dương cần tính, ta
có số âm của số BCD bằng cách lấy bù 10 số cần tính
Ví dụ: biểu diễn số +07910bằng số BCD: 0000 0111 1001
+1
Vây, ta có: Số - 07910trong cách biểu diễn số BCD: 1001 0010 0001BCD
Cách tính toán trên tương đương với cách sau:
Trang 37 Bảng mã ASCII
Bảng mã EBCDIC
Bảng mã UNICODE
Trang 39NHIỆM VỤ TỰ HỌC VÀ TÀI LIỆU HỌC TẬP CỦA SINH VIÊN
- Đọc trước nội dung Chương 1 trong quyển bài giảng này trước khi lên lớp
- Có thể tham khảo thêm các quyển tài liệu được giới thiệu ở trang 90 củagiáo trình này
Trang 40CÂU HỎI VÀ BÀI TẬP CHƯƠNG 1
1 Dựa vào tiêu chuẩn nào người ta phân chia máy tính thành các thế hệ?
2 Đặc trưng cơ bản của các máy tính thế hệ thứ nhất?
3 Đặc trưng cơ bản của các máy tính thế hệ thứ hai?
4 Đặc trưng cơ bản của các máy tính thế hệ thứ ba?
5 Đặc trưng cơ bản của các máy tính thế hệ thứ tư?
6 Việc phân loại máy tính dựa vào tiêu chuẩn nào?
7 Khái niệm thông tin trong máy tính được hiểu như thế nào?
11.Số nhị phân 8 bit (11011100) tương ứng với số nguyên thập phân có dấu
là bao nhiêu trong các phép biểu diễn số có dấu sau đây:
Dấu và trị tuyệt đối