Chương trình: Gồm dãy các lệnh có quy luật, được đưa vào bộ nhớ để yêu cầu máy tính thực hiện một công việc cụ thể.. Kiến trúc tập lệnh Một tập lệnh IS - Instruction Set hoặc kiến trúc
Trang 1MỤC LỤC
MỤC LỤC 1
Bài 1: GIỚI THIỆU CHUNG VỀ KIẾN TRÚC MÁY TÍNH 6
1.1.Máy tính và phân loại máy tính 6
1.1.1.Máy tính 6
1.1.2.Phân loại máy tính 6
1.1.2.1 Theo đặc trưng thiết kế 6
1.1.2.2 Theo kích cỡ/năng lực xử lý 7
1.1.2.3 Phân loại theo kiến trúc 7
1.2.Kiến trúc máy tính 8
1.2.1.Kiến trúc tập lệnh 9
1.2.2.Tổ chức của máy tính 9
1.2.3.Mô hình phân lớp của máy tính 12
1.3.Sự phát triển của máy tính 14
1.4.Hiệu năng máy tính 20
Bài 2: MÃ HOÁ THÔNG TIN TRONG MÁY TÍNH 23
2.1.Các hệ đếm cơ bản 23
2.1.1.Hệ thập phân (Decimal) 23
2.1.2.Hệ nhị phân (Binary) 23
2.1.3.Hệ thập lục phân (Hexa) 23
2.1.4.Quan hệ giữa các hệ đếm 23
2.2.Mã hoá thông tin trong máy tính 24
2.2.1.Nguyên tắc chung về mã hoá dữ liệu 24
2.2.2.Nguyên tắc lưu trữ dữ liệu trong máy tính 24
2.3.Biểu diễn số nguyên 25
2.3.1.Số nguyên không dấu 25
2.3.2.Số nguyên có dấu 25
2.3.3.Các phép toán với số nguyên 26
2.3.4 Biểu diễn số nguyên theo mã BCD (Binary Coded Decimal) 27
Trang 22.4.Biểu diễn số thực 28
2.4.1.Số thực dấu phảy tĩnh 28
2.4.2.Số thực dấu phảy động 28
2.5.Mã hoá ký tự 29
2.5.1.Bảng mã ASCII 29
2.5.2.Bảng mã UniCode 30
2.6.Mã hoá hình ảnh 30
2.6.1.Mã hoá hình ảnh tĩnh 30
2.6.2.Mã hoá ảnh động 31
2.7.Mã hoá âm thanh 32
Bài 3: Bài tập và thảo luận về chuyển đổi hệ đếm và các phép toán số học, logic 32 Bài 4 : CƠ BẢN VỀ LOGIC SỐ 32
4.1.Các cổng logic cơ bản 32
4.2.Đại số Boole 34
4.3.Mạch tổ hợp 35
4.3.1 Mạch cộng (Adder) 35
4.3.2 Mạch trừ (Subtractor) 36
4.3.3 Mạch so sánh (Comparator) 37
4.3.4 Mạch dồn kênh (MUX) 38
4.3.5 Mạch phân kênh (Demux) 39
4.3.6 Mạch mã hoá 39
4.3.7 Mạch giải mã 40
4.3.8 Mạch dịch bit (Shifter) 40
4.3.9 Mạch tạo tín hiệu thời gian (Clock) 41
4.4 Mạch dãy (Sequential Circuit) 41
4.4.1 Flip-Flop 42
4.4.2 Thanh ghi (Register) 44
4.4.3 Bộ đếm (Counter) 46
Bài 5: TỔNG QUAN VỀ HỆ THỐNG MÁY TÍNH 47
5.1 Các thành phần cơ bản của máy tính 47
Trang 35.1.1 Vỏ thùng máy (Case) 47
5.1.2 Bộ nguồn (Power Supply) 47
5.1.3 Bo mạch chủ (Mainboard) 49
5.1.4 Bộ xử lý trung tâm (CPU) 56
5.1.5 RAM (Random Access Memory) 57
5.1.6 Các thiết bị lưu trữ (Storage Devices) 58
5.1.7 Các loại Card giao tiếp 61
5.2 Các hoạt động cơ bản của máy tính 63
5.2.1 Thực hiện chương trình 63
5.2.2 Ngắt (Interrupt) 64
5.2.3 Vào-Ra (Input/Output) 65
5.3 Bus máy tính 65
5.3.1 Cấu trúc Bus 65
5.3.2 Các loại bus cơ bản trong máy tính 66
5.3.3 Phân cấp đa bus trong máy tính 67
Bài 06: Bài tập và thảo luận về các phần tử logic cơ bản và mạch logic tổ hợp 68
Bài 7: BỘ XỬ LÝ TRUNG TÂM 69
7.1 Tổ chức của CPU 69
7.1.1 Cấu trúc cơ bản 69
7.1.2 Hoạt động của chu trình lệnh 70
7.2 Thiết kế đơn vị điều khiển 74
7.2.1 Thực hiện bằng mạch điện tử 74
7.2.2 Thực hiện bằng vi chương trình 75
7.3 Kỹ thuật đường ống (pipelining) 76
7.3.1 Nguyên tắc chung 76
7.3.2 Các Hazard (trở ngại) của đường ống 77
7.4 Các kiến trúc song song mức lệnh 79
7.4.1 Siêu đường ống (Superpipeline và Hyperpipeline) 79
7.4.2 Bộ xử lý siêu vô hướng (Superscalar) 80
7.5 Bộ xử lý đa luồng và đa lõi 81
Trang 47.5.1 Công nghệ siêu phân luồng (Hyper Threading) 81
7.5.2 Công nghệ đa lõi 81
Bài 8: KIẾN TRÚC TẬP LỆNH 88
8.1 Mô hình lập trình của máy tính 88
8.2 Các đặc trƣng của lệnh máy 91
8.2.1 Các thành phần của lệnh máy: 91
8.2.2 Đánh giá về số địa chỉ toán hạng: 93
8.3 Các kiểu định vị 93
8.4 Các kiểu toán hạng 95
8.5 Các vấn đề khi thiết kế lệnh máy 95
8.6 Các kiểu thao tác của lệnh 95
8.6.1 Các lệnh chuyển dữ liệu 95
8.6.2 Các lệnh số học 95
8.6.3 Các lệnh logic 95
8.6.4 Các lệnh điều khiển vào-ra 96
8.6.5 Các lệnh chuyển điều khiển 96
8.6.6 Các lệnh điều khiển hệ thống 96
8.7 Khái niệm về lập trình hợp ngữ 96
8.8 RISC và CISC 97
8.9 Kiến trúc tập lệnh của Intel 8086 97
8.9.1 Tập thanh ghi của 8086 97
8.9.2 Tập lệnh của 8086 100
8.9.3 Các kiểu định vị của 8086 107
Bài 09: Bài tập và thảo luận về bộ xử lý trung tâm, kiến trúc tập lệnh 110
Bài 10: Tổng quan về hệ thống nhớ của máy tính 111
10.1 Các đặc trƣng của hệ thống nhớ 111
10.2 Phân cấp hệ thống nhớ 111
10.3 Phát hiện và hiệu chỉnh lỗi của bộ nhớ 111
Bài 11: Bộ nhớ bán dẫn và bộ nhớ chính 113
11.1 Phân loại bộ nhớ bán dẫn 113
Trang 511.2 Tổ chức của chip nhớ bán dẫn 115
11.3 Bộ nhớ chính 118
11.3.1 Đặc trưng 118
11.3.2 Tổ chức các băng nhớ đan xen 119
Bài 12: Bộ nhớ Cache và bộ nhớ ngoài 121
12.1 Nguyên tắc chung của cache 121
12.2 Các phương pháp ánh xạ địa chỉ 121
12.3 Các thuật giải thay thế thông dụng 121
12.4 Các phương pháp ghi dữ liệu 121
12.5 Bộ nhớ từ 122
12.6 Bộ nhớ quang 127
12.7 Bộ nhớ ảo 133
Bài 13: Thảo luận về hệ thống nhớ máy tính 145
Bài 14: Hệ thống vào ra 137
14.1 Giới thiệu chung về hệ thống vào-ra 137
14.2 Thiết bị ngoại vi 137
14.3 Mô-đun vào-ra 137
14.4 Đánh địa chỉ cho cổng vào-ra 138
14.5 Các phương pháp điều khiển vào-ra 139
14.5.1 Vào-ra bằng chương trình 139
14.5.2 Vào-ra điều khiển bằng ngắt 140
14.5.3 Truy nhập trực tiếp bộ nhớ (DMA) 141
14.5.4 Kênh vào-ra và bộ xử lý vào-ra 141
Bài 15: Thảo luận về hệ thống vào ra 141
Bài 16: MÁY TÍNH SONG SONG 142
16.1 Giới thiệu 142
16.2 Các loại máy tính 142
Bài 17: Thảo luận về hệ thống vào ra, máy tính song song, tổng kết môn 147
Trang 6Bài 1: GIỚI THIỆU CHUNG VỀ KIẾN TRÚC MÁY TÍNH
1.1 Máy tính và phân loại máy tính
1.1.1 Máy tính
Máy tính: Là thiết bị điện tử thực hiện các công việc sau:
- Nhận thông tin vào
- Xử lý các thông tin theo các dãy lệnh được nhớ sẵn bên trong
- Đưa thông tin ra
Chương trình: Gồm dãy các lệnh có quy luật, được đưa vào bộ nhớ để yêu
cầu máy tính thực hiện một công việc cụ thể
=> Máy tính hoạt động theo chương trình
1.1.2 Phân loại máy tính
Có rất nhiều cách (tiêu chí) để có thể phân loại máy tính Thông thường máy tính được phân loại theo một số cách sau:
1.1.2.1 Theo đặc trưng thiết kế
1 Máy tính số (Digital Computer): Sử dụng các đại lượng vật lý biến
thiên một cách rời rạc để mã hoá và xử lý thông tin Chúng được chia thành nhiều loại:
a) Máy tính số tuần tự: Các công việc (nhiệm vụ) được thực hiện tuần tự
(hết công việc này đến công việc khác) Tốc độc thực thi chậm, hiện nay gần như không còn tồn tại
b) Máy tính số song song: Các nhiệm vụ được thực hiện song song, tốc
độc thực thi cao và yêu cầu về phần cứng cao Máy tính loại này thường là các siêu máy tính
c) Máy tính số chuyên dụng: Máy tính được thiết kế để giải một lớp bài
toán (thực hiện công việc) thuộc một lĩnh vực cụ thể Nó thường đơn giản và rẻ hơn máy tính đa năng nhờ việc có thể giảm bớt các thành phần phần cứng hoặc thậm chí
cả việc rút gọn tập lệnh của bộ vi xử lý
d) Máy tính số đa năng: Loại máy tính được thiết kế không có mục đích
nhất định, nó có thể thực hiện bất cứ nhiệm vụ thuộc lĩnh vực nào Các máy tính ngày nay thuộc loại máy tính này
2 Máy tính tương tự (Analog Computer): Sử dụng các đại lượng vật lý
biến thiên liên tục để mã hoá và xử lý thông tin Nó có ưu điểm là vận hành rất thuận tiện, kết quả đưa ra thường dưới dạng đồ thị trong thời gian cực ngắn Nhược điểm của nó là kết quả không có độ chính xác cao, hoạt động không mềm dẻo như máy tính số và khả năng giải bài toán phụ thuộc vào chính phần cứng của máy Một
số máy tính tương tự như: Máy phân tích nước, máy đo diện tích, máy định vị bom,
Trang 7hệ thống kiểm soát bắn,…
1.1.2.2 Theo kích cỡ/năng lực xử lý
1 Máy tính nhúng (Embedded Computer): Là máy tính đặt ẩn trong một
thiết bị khác để điều khiển thiết bị đó làm việc Chúng được thiết kế chuyên dụng để làm việc với thiết bị đó Ví dụ: Điện thoại di động; máy ảnh số; hệ thống điều khiển trong TV, máy giặt, điều hoà, ô tô; các bộ định tuyến (router),…
2 Máy tính cá nhân (Personal Computer): Là những máy tính nhỏ,
thường có một bộ vi xử lý và một số thiết bị ngoại vi Thường dùng cho một người dùng độc lập hoặc dùng trong hệ thống mạng máy tính Vd: Máy tính để bàn, máy tính xách tay
3 Máy tính nhỏ (Mini Computer): Có kích thước lớn hơn PC nhiều Nó
có khả năng hỗ trợ hàng chục hoặc hàng trăm người làm việc Chúng thường được
sử dụng rộng rãi trong các ứng dụng thời gian thực: Điều khiển hàng không, tự động hoá sản xuất,…
4 Máy tính lớn (MainFrame Computer): Là những máy tính cỡ lớn, có
thể đáp ứng hàng ngàn hoặc hàng triệu người sử dụng Chúng thường được sử dụng trong hệ thống có khối lượng tính toán hoặc giao dịch lớn Ngày nay, các Mainframe thường được sử dụng làm các File Server trên hệ thống mạng hoặc xử lý giao dịch trong ngân hàng
5 Siêu máy tính (Super Computer): Được thiết kế đặc biệt để đạt được
tốc độ tính toán các phép tính dầu phảy động cao nhất Chúng thường có kiến trúc song song, tuy nhiên chỉ hoạt động hiệu quả trong một số lĩnh vực
1.1.2.3 Phân loại theo kiến trúc
1 Kiến trúc Von Neumann
Đặc điểm của kiến trúc Von Neumann:
- Lệnh và dữ liệu được lưu
chung trên cùng một bộ nhớ Do
vậy, hai quá trình đọc lệnh và dữ
liệu không thể xảy ra đồng thời
- Bộ nhớ được đánh địa chỉ
theo từng ngăn nhớ, không phụ
thuộc vào nội dung của nó
- Các lệnh được thực hiện
tuần tự Quá trình thực hiện lệnh
thường diễn ra qua 3 giai đoạn: (1)
Đọc lệnh từ bộ nhớ;
Hình 1.1: Kiến trúc Von
Trang 8(2) Giải mã và thực hiện lệnh, nếu lệnh có yêu cầu dữ liệu sẽ phải đọc dữ liệu từ bộ nhớ; (3) Ghi kết quả thực hiện lệnh vào bộ nhớ (nếu có)
2 Kiến trúc Havard
Hình 1.2: Kiến trúc Havard
Đặc điểm của kiến trúc Havard:
- Bộ nhớ được chia thành 2 phần riêng biệt: Bộ nhớ chương trình và bộ nhớ dữ liệu
- Hai hệ thống bus riêng để kết nối bộ nhớ chương trình và bộ nhớ dữ liệu với CPU
- Hỗ trợ truy cập nhiều lệnh đồng thời, giảm xung đột truy cập
- Kiến trúc tập lệnh (ISA - Instruction Set Architecture): Là ngôn ngữ của
bộ vi xử lý Nó thể hiện khả năng, năng lực của CPU mà ngôn ngữ lập trình có thể đánh giá và thực hiện trên nó Nó bao gồm: kích thước của từ máy, các loại thanh ghi, các chế độ địa chỉ bộ nhớ, định dạng dữ liệu và tập lệnh cung cấp cho lập trình viên
- Vi kiến trúc (MicroArichtecture): Hay còn gọi là tổ chức máy tính:
Nghiên cứu thiết kế máy tính ở mức cao, chẳng hạn như: Hệ thống nhớ, cấu trúc bus, thiết kế bên trong CPU,…
Trang 91.2.1 Kiến trúc tập lệnh
Một tập lệnh (IS - Instruction Set) hoặc kiến trúc tập lệnh (ISA) là một phần của Kiến trúc máy tính, nó liên quan đến việc lập trình, bản chất các kiểu dữ liệu, các chỉ thị lệnh, các thanh ghi, các chế độ địa chỉ, tổ chức bộ nhớ, hệ thống ngắt và
xử lý ngoại lệ và các thao tác vào/ra Kiến trúc một tập lệnh bao gồm:
- Mã lệnh (Opcode): Là tập hợp các chuỗi số nhị phân mã hoá cho các thao tác mà máy tính có thể hiểu và thực hiện được
- Các kiểu dữ liệu (Data Type): Các kiểu dữ liệu mà máy tính có thể xử lý được
1.2.2 Tổ chức của máy tính
Một máy tính tối thiểu phải thực hiện được 5 chức năng sau:
1 Nhập liệu: Đưa chương trình và dữ liệu vào trong máy tính
2 Lưu trữ: Quá trình lưu trữ dữ liệu và lệnh được gọi chung là lưu trữ Dữ
liệu phải được đưa vào hệ thống trước quá trình xử lý, bởi vì tốc độ xử lý của CPU lớn hơn rất nhiều so với tốc độ đáp ứng dữ liệu Bởi vậy, dữ liệu phải được đưa vào
bộ nhớ để quá trình xử lý được nhanh hơn Bộ nhớ chính đảm nhiệm vai trò trên, nó lưu trữ dữ liệu và lệnh và cho phép:
- Chứa toàn bộ dữ liệu và lệnh trước khi thực hiện xử lý
- Lưu trữ kết quả của quá trình xử lý
3 Xử lý: Việc thực hiện các phép toán số học và logic được gọi là quá trình
xử lý CPU thực hiện các lệnh theo chương trình với dữ liệu tương ứng và trả kết quả về bộ nhớ chính
4 Xuất tín hiệu: Là quá trình kết xuất kết quả để có được dữ liệu mong
muốn Dữ liệu luôn luôn được lưu trữ, tổng hợp trước khi cung cấp đến người sử dụng và luôn lưu trữ trong bộ nhớ để phục vụ cho quá trình xử lý kế tiếp
5 Điều khiển: Các chỉ thị để điều khiển hoạt động, kiểm soát toàn bộ hoạt
động của hệ thống bao gồm: Đầu vào, xử lý, đầu ra Nó giám sát từng bước của quá trình xử lý
Hình 1.3: Cấu trúc chung một máy tính điện tử
Trang 10Để thực hiện tất cả các nhiệm vụ trên, máy tính giao quyền cho các đơn vị chức năng thực hiện các hoạt động tương ứng, cụ thể:
a CPU: Là bộ não của hệ thống máy tính Nó luôn ra các quyết định quan
trọng, điều khiển tính toán và điều khiển toàn bộ các thành phần trong hệ thống Nó bao gồm 4 thành phần: Đơn vị điều khiển (CU-Control Unit), khối số học và logic (ALU-Arthimetic and Logic Unit), các thanh ghi (Registers) và tín hiệu xung đồng
hồ (Clock)
Hình 1.4: Cấu trúc bên trong CPU
- CU: Lấy lệnh từ bộ nhớ, giải mã và thực thi lệnh
- ALU: Thực hiện các phép toán số học và logic trên dữ liệu nhị phân
- Registers: Là nơi lưu trữ tạm thời dữ liệu của CPU Một số thanh ghi như:
bộ đếm chương trình, thanh ghi lệnh có công dụng riêng Một số thanh ghi khác như: thanh ghi tích luỹ (thanh chứa) được sử dụng chung
- Clock: Mạch trong bộ vi xử lý tạo ra một chuỗi các xung điện tử đều nhau
để đồng bộ hoạt động của các thành phần bên trong bộ vi xử lý Thời gian giữa các xung gọi là chu kỳ và số xung phát ra trong một giây gọi là tần số (tốc độ) Thời gian thực hiện một lệnh được đo bằng một số chu kỳ đồng hồ chứ không đo bằng giây Tốc độ xung đồng hồ càng cao, thời gian hoàn thành một lệnh càng ngắn
b Memory: Dùng để lưu trữ dữ liệu, được chia làm 2 loại:
- Bộ nhớ trong: Là loại bộ nhớ được truy cập bởi bộ vi xử lý không thông
qua các kênh vào/ra Nó bao gồm: Rom, Ram, Cache, một số thanh ghi đặc biệt + RAM (Random Access Memory - Bộ nhớ truy cập ngẫu nhiên): Chứa các chương trình và dữ liệu được nạp vào trong quá trình thực hiện Ram có các đặc điểm sau:
Chứa các chương trình và dữ liệu đang được CPU sử dụng
Tổ chức thành các ngăn nhớ được đánh địa chỉ
Ngăn nhớ thường được tổ chức theo byte
Nội dung của ngăn nhớ có thể thay đổi, song địa chỉ vật lý của ngăn
Trang 11dụng để lưu trữ một bản sao của lệnh và dữ liệu
trong Ram có khả năng sẽ được dùng lại
- Bộ nhớ ngoài: Lưu trữ dữ liệu, chương
trình ngay cả khi máy không hoạt động như các đĩa
cứng, đĩa quang (CD, DVD), các ổ đĩa Flash Bộ
nhớ ngoài có đặc điểm sau:
Lưu giữ tài nguyên phần mềm của máy
tính
Được kết nối với hệ thống dưới dạng các
thiết bị vào-ra
Dung lượng lớn
Tốc độ truy xuất thông tin chậm
c Các thiết bị vào ra: Trao đổi thông tin giữa máy tính với thế giới bên
Trang 12+ Các module vào-ra (IO Modules)
Hình 1.6: Cấu trúc cơ bản hệ thống vào ra
d Hệ thống Bus: Ghép nối các thành phần khác nhau trong một hệ thống
Thông thường bao gồm:
- Data BUS: Vận chuyển các tín hiệu dữ liệu trao đổi giữa các thành phần
- Address BUS: Truyền tín hiệu địa chỉ từ CPU đến bộ nhớ và các thiết bị ngoại vi
- Control BUS: Truyền tín hiệu điều khiển từ CPU đến các thành phần khác, đồng thời truyền tín hiệu trạng thái từ các thành phần khác đến CPU
1.2.3 Mô hình phân lớp của máy tính
Trang 13- Mức này chưa có khái niệm về chương trình
2 Lớp 1 (Level 1): Mức vi chương trình
- Là lớp ngôn ngữ máy thực sự Có một chương trình hoạt động gọi là vi chương trình
- Nhiệm vụ của chương trình là thông dịch các chỉ thị ở lớp 2
- Mức vi chương trình ở các hãng sản xuất máy tính khác nhau có những điểm giống nhau, tuy nhiên không giống nhau hoàn toàn
- Mỗi máy tính có thể có một hoặc một vài vi chương trình chạy ở mức 1 Mỗi một vi chương trình đảm nhiệm một ngôn ngữ ở mức 2 (L2) và một máy ảo với ngôn ngữ là L2
3 Lớp 2 (Level 2): Mức quy ước máy
- Các lệnh trên máy cấp 2 được thực thi bằng cách thông dịch bởi vi chương trình mà không phải thực thi trực tiếp bằng phần cứng
4 Lớp 3 (Level 3): Phần mềm hệ thống
- Hầu hết các lệnh trong ngôn ngữ của cấp máy này cũng có trong ngôn ngữ cấp 2 và đổng thời có thêm một tập lệnh mới, một tổ chức bộ nhớ khác và khả năng chạy 2 hay nhiều chương trình song song Các lệnh mới thêm vào sẽ được thực thi bằng một trình thông dịch chạy trên cấp 2, gọi là hệ điều hành Nhiều lệnh cấp 3 được thực thi trực tiếp do vi chương trình và một số lệnh khác được thông dịch bằng hệ điều hành (do đó, cấp này là cấp hỗn hợp)
5 Cấp 4 (Level 4): Cấp ngôn ngữ máy
Cấp này cung cấp một phương pháp viết chương trình cho các cấp 1, 2, 3 dễ dàng hơn Các chương trình viết bằng hợp ngữ được dịch sang các ngôn ngữ của cấp 1, 2, 3 và sau đó được thông dịch bằng các máy ảo hay thực tương ứng
6 Cấp 5 (Level 5): Ngôn ngữ lập trình cấp cao
Cấp này bao gồm các ngôn ngữ được thiết kế cho người lập trình nhằm giải quyết một vấn đề cụ thể Các ngôn ngữ này được gọi là cấp cao Một số ngôn ngữ cấp cao như Basic, C, Cobol, Fortran, Lisp, Prolog, Pascal và các ngôn ngữ lập trình hướng đối tượng như C++, J++, … Các chương trình viết bằng các ngôn ngữ này thường được dịch sang cấp 3 hay 4 bằng các trình biên dịch (Compiler)
Trang 141.3 Sự phát triển của máy tính
1 Thế hệ thứ nhất (1940-1955): Máy tính dùng đèn điện tử chân không
Hình 1.8: Một số loại đèn điện tử chân không
- ENIAC (Electronic Numerical Intergator And Computer)
+ Máy tính điện tử đầu tiên + Dự án của Bộ Quốc phòng Mỹ + Do John Mauchly và John Presper Eckert, Đại học Pennsylvania thiết kế
+ Bắt đầu từ năm 1943, hoàn thành năm 1946
Hình 1.9: Máy ENIAC (30 tấn, 18000 đèn điện tử, 1500 rơle, 140KWh)
- Máy tính von Neumann
+ Đó là máy tính IAS:
Princeton Institute for Advanced Studies
Đƣợc bắt đầu từ 1947, hoàn thành1952
Trang 15 Do John von Neumann thiết kế
Được xây dựng theo ý tưởng “chương trình được lưu trữ”
(stored- program concept) của von Neumann/Turing (1945)
Hình 1.10: Von Neumann với máy tính IAS
+ Đặc điểm chính của máy tính IAS
Bao gồm các thành phần: đơn vị điều khiển, đơn vị số học
và logic (ALU), bộ nhớ chính và các thiết bị vào-ra
Bộ nhớ chính chứa chương trình và dữ liệu
Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ, không phụ thuộc vào nội dung của nó
ALU thực hiện các phép toán với số nhị phân
Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và thực hiện lệnh một cách tuần tự
Đơn vị điều khiển điều khiển hoạt động của các thiết bị vào-ra
Trở thành mô hình cơ bản của máy tính
- Các máy tính thương mại ra đời
+ 1947 - Eckert-Mauchly Computer Corporation + UNIVAC I (Universal Automatic Computer) + 1950s - UNIVAC II
Nhanh hơn
Bộ nhớ lớn hơn
Trang 16- Hãng IBM (International Business Machine)
+ 1953 - IBM 701
Máy tính lưu trữ chương trình đầu tiên của IBM
Sử dụng cho tính toán khoa học + 1955 – IBM 702
Các ứng dụng thương mại
2 Thế hệ thứ 2 (1956-1963): Máy tính dùng Transitors
Năm 1948, John Bardeen, Walter Brattain và William Shockley phát minh ra transistor đã làm cuộc cách mạng trong lĩnh vực máy tính Máy tính transistor đầu tiên duợc xây dựng tại MIT, máy TX-0 (Transistorized eXperimental computer 0),
có 16 bit
Hình 1.11: Máy tính dùng Transistor đầu tiên
Năm 1961, máy tính PDP-1 xuất hiện có 4K từ 18 bit và khoảng thời gian một chu kỳ là 5 µs Vài năm sau, PDP-8 ra dời có 12 bit nhưng giá thành rẻ hơn PDP-1 rất nhiều (16.000 USD so với 120.000 USD) PDP-8 có một đổi mới đó là hình thành một bus đơn gọi là omnibus trong đó bus là tập hợp các dây nối song song dùng để kết nối các thành phần của máy tính
Trang 17Hình 1.12: Máy tính PDP-1 của DEC
Trong khi dó, IBM xây dựng một phiên bản của 709 bằng transistor, đó là máy tính 7094 có thời gian một chu kỳ là 2 µs và bộ nhớ 32K từ 36 bit Năm 1964, công ty CDC giới thiệu máy 6600 có tốc độ nhanh hơn 7094 do bên trong CPU có một có chế độ song song CPU có vài đơn vị thực hiện phép cộng, các đơn vị khác thực hiện phép nhân, chia và tất cả chúng đều hoạt động song song Với một công việc, máy có khả năng thực thi 10 lệnh đồng thời
Hình 1.13: Máy CDC-6600 của công ty CDC
3 Thế hệ thứ 3 (1964-1980): Máy tính dùng vi mạch
Vi mạch (IC – Intergrated Circuit): Gồm nhiều transistor và các phần tử bán
Trang 18dẫn được tích hợp với nhau trên cùng một chip bán dẫn
Hình 1.14: Mạch thiết kế và vi mạch hoàn chỉnh
- Các mức tích hợp của vi mạch:
+ SSI (Small Scale Integration): Tích hợp mức nhỏ
+ MSI (Medium Scale Integration): Tích hợp mức vừa
+ LSI (Large Scale Integration): Tích hợp mức cao
- Siêu máy tính xuất hiện: CRAY-1, VAX
- Bộ vi xử lý (microprocessor) ra đời: Bộ vi xử lý đầu tiên, Intel 4004 (1971)
4 Thế hệ thứ 4 (1981 – nay): Máy tính dùng vi mạch VLSI
- VLSI (Very Large Scale Integration): Tích hợp mức cực lớn Các sản phẩm của công nghệ VLSI:
+ Bộ vi xử lý (Microprocessor): CPU được chế tạo trên một chip
+ Vi mạch điều khiển tổng hợp (Chipset): một hoặc một vài vi mạch thực hiện được nhiều chức năng điều khiển và nối ghép
+ Bộ nhớ bán dẫn (Semiconductor Memory): ROM, RAM
+ Các bộ vi điều khiển (Microcontroller): máy tính chuyên dụng được chế tạo trên 1 chip
- Xuất hiện máy vi tính IBM - PC với hệ điều hành DOS
5 Thế hệ thứ 5: Máy tính của tương lai
- Máy tính lượng tử: (quantum computer) Loại máy tính này có nguyên
lý làm việc khác khá xa so với máy tính điện tử ngày nay Với máy tính điện tử ngày nay, thì dùng các bit để làm nền tảng cho các xử lý bên trong của mình, mặc
dù có thành tựu rất lớn về mặt tính toán song ở các bài toán phức tạp về yêu cầu chuyên sâu trong các ngành khoa học như thiên văn, dự báo thời tiết, y học, sinh vật, toán học v.v thì ngay cả các siêu máy tính tính toán với tốc độ mạnh nhất hiện nay, tiềm năng cũng không thể bằng máy tính lượng tử, vì các máy tính chúng ta có
ở thời điểm hiện tại chỉ cho ra kết quả là khá hạn chế về các yêu cầu ngành này, các kết quả cho ra có sai số khá cao trong khi cùng lượng thông tin đầu vào như vậy
Trang 19Máy tính lượng tử dùng nguyên lý Quabit để xử lý thông tin, với các hạt e xử lý thông tin thì khả năng tốc độ xử lý thông tin sẽ trao đổi rất nhanh, không ngừng sẽ tạo ra nhiều hướng kết quả, qua đó con người sẽ có thể thu nhận được nhiều kết quả chính xác hơn, cho các giả thuyết và tính toán của mình, từ đó hiếu sâu thế giới tự nhiên như trong nghiên cứu vũ trụ nghiên cứu sinh học v.v
Theo nhiều nhà khoa học hàng đầu, khả năng ấn tượng về tính toán của loại máy tính này cho kết quả trong thời gian cực ngắn, mà nếu dùng siêu máy tính mạnh nhất ở thời điểm hiện tại cũng phải đợi hàng triệu năm mới có kết quả tương tự
Hình 1.15: Máy tính lượng tử trong tương lai
- Máy tính sẽ đạt cấp độ xử lý thông tin ở cấp độ phân tử nguyên tử
Ngày nay, khi thế hệ vật liệu để làm nên phần cứng xử lý thông tin đã có kích thước cực nhỏ, song vì mật độ thì ngày càng có giới hạn về mặt kích thước và yêu cầu tiêu tốn một lượng lớn năng lượng và các vấn đề còn hạn chế về mặt kĩ thuật đi kèm: yêu cầu phần mềm, các vấn đề vật lý như: nhiệt độ môi trường, nhiệt độ mà vật liệu chạy v.v thì với máy tính sử dụng các loại vật liệu xử lý thông tin trong tương lai, có thể được kì vọng là sẽ giải quyết phần lớn các vấn đề
mà máy tính điện tử hiện tại đang tồn tại như: xử lý thông tin nhanh hơn với cùng kích thước và năng lượng, tiêu ngốn ít hơn trong quá trình xử lý thông tin
- Máy tính sinh học Đây là hướng máy tính hoàn toàn mới, nguyên lý
loại máy tính này là dựa vào các thông tin của các phân tử hữu cơ có khả năng xử
lý thông tin, kết hợp với các phân tử có khả năng “hiểu” và nhập các thông tin đầu vào, với khả năng kết hợp này thì sẽ tạo ra loại máy tính có khả năng học hỏi
Trang 20như con người là hoàn toàn có thể Có thể phá vỡ việc con người sẽ phải lập trình cho máy tính, lúc này máy tính có khả năng xử lý thông tin và tự đưa ra kết
quả dựa vào các kết quả tính toán các “kinh nghiệm” mà loại máy tính này xử
lý Mới đây nhất, các nhà khoa học máy tính này đã tạo ra thế hệ đầu tiên của loại máy tính này ở châu Âu
1.4 Hiệu năng máy tính
Hiệu năng (Performance) được tính theo công thức sau:
Trong đó:
- CPU Execution time = Instructions * (Cycles Per Instruction) * (Secs per Cycle) = Instructions * CPI * (Clock rate)
- Clock rate: Đồng hồ xung nhịp của CPU
- CPI (Cycles Per Instruction): Là số xung nhịp cần thiết để thực hiện 1 lệnh, được tính bằng:
+ ET (Execution Time): Thời gian thực hiện lệnh + EI (Execution Instruction): Số lệnh được thực hiện + CR (Clock Rate): Tần số xung nhịp
Ví dụ: Có 4 lệnh A, B, C, D Biết CPIA = 2, CPIB = 3, CPIC = 1, CPID = 4 Biết 1 CPI = 2 (ns)
Thời gian hoàn thành các lệnh theo thứ tự: A -> B -> C -> B -> D: 26 (ns)
MIPs (Million Instruction Per second): Số triệu lệnh trên giây
Trong đó:
- IF (Instruction Frequency): Tần suất xuất hiện lệnh
- CPI: Số chu kỳ
- : Thời gian một chu kỳ máy
Ví dụ: Cho = 10 (ns) Dựa vào bảng ta tính được MIPs = 30.845 mips
Trang 21 Mối quan hệ giữa MPIs và CPI
Trang 22Hình 1.17: Công thức tính MFLOPS
Trang 23Bài 2: MÃ HOÁ THÔNG TIN TRONG MÁY TÍNH 2.1 Các hệ đếm cơ bản
Trang 242.2 Mã hoá thông tin trong máy tính
2.2.1 Nguyên tắc chung về mã hoá dữ liệu
Mọi dữ liệu được đưa vào máy tính được mã hoá thành số nhị phân
- Các loại dữ liệu:
+ Dữ liệu nhân tạo: do con người quy ước + Dữ liệu tự nhiên: tồn tại khách quan với con người
- Mã hoá dữ liệu nhân tạo :
+ Dữ liệu số nguyên: mã hoá theo một số chuẩn đã quy ước + Dữ liệu số thực: mã hoá bằng số dấu chấm động
+ Dữ liệu phi số (ký tự): mã hoá theo các bộ mã ký tự hiện hành như : ASCII, Unicode,…
Hình 2.1 : Quy trình biến đổi tín hiệu
2.2.2 Nguyên tắc lưu trữ dữ liệu trong máy tính
Bộ nhớ chính tổ chức lưu trữ dữ liệu theo đơn vị byte Độ dài từ dữ liệu có thể chiếm từ 1 đến 4 byte Vì vậy cần phải biết thứ tự lưu trữ của chúng trong bộ nhớ chính đối với các dữ liệu nhiều byte
Có hai cách lưu trữ được đưa ra
- Little Endian (đầu nhỏ): Byte có ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị trí có địa chỉ nhỏ hơn
Ví dụ: Giả thiết cần lưu một một dòng chữ KY THUAT MAY TINH sử dụng mã ASCII 8 bit
- Big Endian (đầu to): Byte có ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị trí có địa chỉ lớn hơn
Tín hiệu vật lý Bộ cảm biến
tín hiệu
Tín hiệu điện liên tục
Trang 252.3 Biểu diễn số nguyên
Nguyên tắc chung: Dùng n-chữ số nhị phân, sẽ biểu diễn được 2n số (giá trị)
2.3.1 Số nguyên không dấu
Dùng n bit để biểu diễn số nguyên không dấu
1 Dấu và trị tuyệt đối
Dùng n bit để biểu diễn số nguyên có dấu theo
“Dấu và trị tuyệt đối” Khi đó:
- Bit (n - 1): Bit dấu
- (n - 1) bit còn lại là trị tuyệt đối của
số đó Vd: n = 8 Khi đó tồn tại 2 giá
trị (+0) và (-0) Phạm vi biểu diễn tổng
quát:
- (2n-1-1) (-0) (+0) (2n-1-1)
2 Số bù 1: Số bù 1 của A = Đảo các bit của A
Trong cách biểu diễn này, số âm của một số
có được bằng cách thay bit tương ứng bằng bit bù với
nó (nghĩa là: 10, 01) Khi có, có 2 biểu diễn của
Trong 2 cách biểu diễn trên, ta thấy tồn tại 2
giá trị (+0) và (-0) Trong biểu diễn theo số bù 2, chỉ
có một giá trị không (0) duy nhất là một dãy các bit
Trang 26Để tìm số đối của một số, ta lấy bù 1 của số đó rồi cộng thêm với 1
Vd: n = 8 (bảng bên)
Phạm vi biểu diễn tổng quát: - (2n-1
) (2n-1-1)
Số bù 2 được dùng để biểu diễn số âm trong máy tính
2.3.3 Các phép toán với số nguyên
Y để được –Y, rồi cộng với X + Bộ trừ số nguyên n bit
- Phép nhân
+ Các tích riêng phần được xác định như sau:
Nếu bit của số nhân bằng 0 => tích riêng phần bằng 0
Nếu bit của số nhân bằng 1 => tích riêng phần bằng số bị nhân
Tích riêng phần tiếp theo được dịch trái một bit so với tích riêng phần trước đó
+ Tích bằng tổng các tích riêng phần + Nhân hai số nguyên n-bit, tích có độ dài 2n bit (không bao giờ tràn)
Trang 27+ Bộ nhân
- Phép chia
B1 Chuyển đổi số bị chia và số
chia về thành số dương tương ứng
B2 Sử dụng thuật giải chia số
nguyên không dấu để chia hai số dương, kết quả nhận được là thương Q và phần dư R đều là dương B3 Hiệu chỉnh dấu của kết quả như sau:
(Lưu ý: phép đảo dấu thực chất là thực hiện phép lấy bù hai)
+ Bộ chia:
2.3.4 Biểu diễn số nguyên theo mã BCD (Binary Coded Decimal)
- Dùng 4 bit để mã hóa cho các chữ số thập phân từ 0 đến 9:
Trang 28- s: bit dấu (chiếm 1 bit)
- N: Phần nguyên (chiếm m bit: Bm-1 - B0)
- L: Phần lẻ (chiếm k bit: B-1
- B-k) Giá trị của số thực:
X = (-1)S (Bm-1*2m-1 + Bm-2*2m-2 + …+ B0*20 + B-1*2-1 + … + B-k*2-k) Vd: Cho số thực X = 11011.011b Tính giá trị của X=?
X = (-1)1 (23 + 21 + 20 + 2-2 + 2-3) = - (8 + 2 + 1 + 1/4 + 1/8) = - 11.375d
Chú ý: Biểu diễn số thực dấu phảy tĩnh chỉ dùng trong các bài toán có yêu
cầu về độ chính xác không cao
2.4.2 Số thực dấu phảy động
Nguyên tắc chung: Bất kỳ một số thực nào cũng đƣợc biểu diễn nhƣ sau:
X = M*RETrong đó:
- M (Mantissa): Phần định trị (định giá trị)
- R (Radix): Phần cơ số (Hệ 10: R = 10; Hệ 2: R = 2;…)
Trang 29- E (Exponent): Phần mũ Khi đó, số thực n bit X đƣợc biểu diễn bằng:
10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
Trang 30Do hạn chế về số lượng ký tự của bảng mã ASCII, nên không đủ để mã hoá
ký tự của tất cả các quốc gia trên thế giới Do vậy, hiệp hội Unicode (gồm các công
ty Tin học lớn) ở California đã xây dựng phiên bản đầu tiên The Unicode Standard
để làm bộ mã duy nhất cho tất cả các quốc gia trên thế giới (kể các các quốc gia sử dụng chữ tượng hình phức tạp như: Trung Quốc, Thái,…) Vì vậy, Unicode đã và đang từng bước thay thế các bộ mã truyền thống Chuẩn Unicode không chỉ quy định bộ mã, mà còn cả cách dựng hình, cách mã hóa (sử dụng 1, 2, 3 hay 4 byte để biểu diễn một ký tự), sự tương quan (collation) giữa các ký tự, và nhiều đặc tính khác của các ký tự, hỗ trợ cả những ngôn ngữ từ phải sang trái như tiếng Ả Rập
Đồ hoạ điểm: Biểu diễn hình ảnh bằng 1 ma trận điểm ảnh (Pixel Matrix)
Loại hình ảnh này được gọi là hình ảnh mẫu Bitmap Khái niệm Bitmap chỉ đúng cho loại hình đen trắng hai mầu (1-mầu đen, 0-mầu trắng) Muốn ảnh có chất lượng
Trang 31cao đòi hỏi nhiều thông tin hơn để biểu diễn độ đậm nhạt (còn gọi là độ xám - Grey Level) Với 1 byte (8 bit) thì một điểm ảnh có thể biểu diễn 256 mầu Lượng thông tin chứa trong 2 byte (16 bit) cho phép biểu diễn 64 Kbyte mầu, ta có chất lượng mầu cao hơn (High Color 16 bit), với 3 byte (24 bit) có thể biểu diễn hết mọi mầu sắc mà mắt người có thể phân biệt được, ta có ảnh mầu thực (True Color 24 bit)
Có nhiều cách để ghi lại thông tin về điểm ảnh trên 1 tệp lưu trữ Cách ghi thông tin trên 1 tệp được gọi là khổ ảnh (Picture Format) Những khổ ảnh đồ hoạ thường gặp là: BMP, PCX, GIF, TIF và JPG
Đồ hoạ Véctơ: Khắc phục những nhược điểm chiếm quá nhiều bộ nhớ của
đồ hoạ điểm Nguyên tắc mã hoá hình ảnh của đồ hoạ Véctơ là chia một hình ảnh thành nhiều đối tượng (Object) cơ bản như: Điểm, đường thẳng, đường đa giác, mặt, khối Máy tính sẽ dựa theo các công thức toán (toán vector) để xây dựng lại hình ảnh từ các đối tượng cơ bản đó Phương pháp này còn được gọi là đồ hoạ hướng đối tượng (Object Oriented Graphics) Mỗi đối tượng và đặc tính của nó có thể được mã hoá bằng 1 lệnh, nên đồ hoạ vector rất ngắn gọn Ưu điểm nữa của đồ hoạ vector là khả năng hiển thị đối tượng 3 chiều (3D-Graphics, Three Dimensional Graphics), trong khi đó đồ hoạ điểm chỉ hiển thị được 2 chiều
2.6.2 Mã hoá ảnh động
Tương tự như cách biểu diễn hình ảnh tĩnh, những đoạn phim hay hình ảnh chuyển động cũng có thể mã hoá theo điểm ảnh hoặc đối tượng Ngoài ra, hình ảnh chuyển động cần thêm 1 tham số biểu diễn nữa đó là thời gian
Biểu diễn ảnh chuyển động bằng điểm ảnh: Do thị giác của con người có độ trễ nhất định, nên chỉ cần 30 ảnh xuất hiện trong 1 giây là ta sẽ có cảm giác hình ảnh chuyển động trơn tru Để hiển thị 1 hình ảnh chuyển động (Video), máy tính phải cung cấp dung lượng bộ nhớ đủ để chứa 30 ảnh tĩnh Cùng với nhu cầu về bộ nhớ thì máy tính và màn hình phải đủ nhanh để xử lý thông tin đồ sộ của 30 ảnh tĩnh trong 1 giây Phần lớn các máy tính hiện nay không đáp ứng nổi yêu cầu đó Để khắc phục hạn chế này người ta phải nén Video số hoá lại Có nhiều phương pháp nén do vậy cũng có nhiều khổ phim (Video Format) như: MPEG, RM, VID, MOV Các thuật toán nén thường tập trung xử lý 2 yếu tố: Nén từng ảnh tĩnh và nén những phần ảnh không thay đổi theo thời gian
Biểu diễn hình ảnh chuyển động bằng phương pháp định hướng đối tượng: Phương pháp này đặc biệt ứng dụng cho việc biểu diễn hình ảnh chuyển động 3 chiều Những ứng dụng hay gặp của phương pháp này là: Trò chơi điện tử ba chiều (3 Game), hiện thực ảo (Virtual Reality) và xảo thuật ảnh cho công nghiệp phim Phương pháp định hướng đối tượng cho hình ảnh chuyển động 3 chiều cũng tương
tự như nguyên tắc tạo hình ảnh tĩnh 3 chiều, các đối tượng được gắn thêm 1 hàm toán mô tả vị trí của nó trong không gian theo biến thời gian (tức là mô tả quỹ đạo
và đặc tính của chuyển động) Phương pháp này đòi hỏi máy tính phải có công suất
Trang 32tính rất lớn
2.7 Mã hoá âm thanh
Mã hoá âm thanh theo hệ đếm nhị phân: Ngắt âm thanh ra thành nhiều giá trị sau một khoảng thời gian nhất định Sau đó gán cho mỗi giá trị 1 mã nhị phân và lưu trữ chúng tuần tự trong 1 tệp Vì thính giác con người chỉ phân biệt được tần số
âm thanh tối đa là fmax = 20KHz, nên theo quy luật lấy mẫu (sampling theorem) tần số ngắt âm thanh (tần số lấy mẫu) tối thiểu phải lớn gấp đôi tần số tối đa fmax Tần số lấy mẫu âm thanh (Sampling Rate) ngày nay tuân thủ theo chuẩn công nghệ nhạc CD (Compact Disk) là 44 KHz Độ phân giải giá trị âm thanh phụ thuộc vào
số bit biểu diễn nó Nếu mã hoá âm thanh bưàng 8 bit thì sẽ cho 256 giá trị khác nhau Chuẩn nhạc CD dùng 16 bit để mã hoá Những khổ âm thanh (Audio Format) thường gặp là: MGEG, WAVE và RM
Ngoài ra ta cũng có thể mã hoá âm thanh theo phương pháp định hướng đối tượng bằng cách chia âm thanh thành các đối tượng, khi phát lại âm thanh máy tính chỉ cần tổng hợp những đối tượng này theo 1 thuật toán nhất định Kỹ thuật này được dùng cho công nghệ nhận biết tiếng nói (Speech Recognization), theo công nghệ này máy tính sẽ nhập và xuất thông tin dưới dạng tự nhiên nhất đối với con người: âm thanh MIDI (Musical Instruments Digital Interface) là khổ âm thanh đơn giản và quen thuộc nhất của dạng mã hoá hướng đối tượng, chúng có đặc điểm là dung lượng rất nhỏ
Bài 3: Bài tập và thảo luận về chuyển đổi hệ đếm và các phép toán số học, logic
- Chuyển đổi các hệ đếm
- Thực hiện các phép toán số học với hệ nhị phân
- Thực hiện các phép toán logic với hệ nhị phân
Bài 4 : CƠ BẢN VỀ LOGIC SỐ 4.1 Các cổng logic cơ bản
Trong các mạch logic, các trạng thái logic
được biểu diễn bằng các mức điện thế, với quy
ước: Điện thế cao biểu diễn logic “1” và điện thế
thấp biểu diễn logic “0” Trong thực tế, mức “0”
và mức “1” tương ứng với một khoảng điện thế
xác định, có một khoảng chuyển tiếp giữa mức
cao và mức thấp là khoảng không xác định
(ngưỡng logic) Khi điện áp của một tín hiệu rơi
vào khoảng nào, mạch sẽ nhận ra là mức “0” hay
mức “1”
Hình 4.1: Mức logic họ TTL
Trang 33Cổng logic (Gate) là mạch điện thực hiện
một phép toán logic trên một hoặc nhiều đầu vào
logic và
tạo ra một kết quả logic duy nhất ở đầu ra, với độ trễ gần nhƣ bằng không
1 Cổng NOT (đảo)
Hình 4.2: Ký hiệu và bảng trạng thái của cổng NOT
Là mạch có 1 đầu vào và 1 đầu ra Đầu ra mang giá trị là đảo của đầu vào
2 Cổng AND
Hình 4.3: Ký hiệu và bảng trạng thái của cổng AND
Mạch có từ 2 đến N đầu vào và 1 đầu ra Đầu ra mang giá trị tích các đầu vào
3 Cổng OR
Hình 4.4: Ký hiệu và bảng trạng thái của cổng OR
Mạch có từ 2 đến N đầu vào và 1 đầu ra Đầu ra mang giá trị tổng các đầu vào
4 Cổng NAND
Hình 4.5: Ký hiệu và bảng trạng thái của cổng NAND
Mạch có từ 2 đến N đầu vào và 1 đầu ra Đầu ra mang giá trị đảo của tích các đầu vào
Trang 345 Cổng NOR
Hình 4.6: Ký hiệu và bảng trạng thái của cổng NOR
Mạch có từ 2 đến N đầu vào và 1 đầu ra Đầu ra mang giá trị đảo của tổng các đầu vào
6 Cổng X-OR
Hình 4.7: Ký hiệu và bảng trạng thái của cổng XOR
Mạch có từ 2 đến N đầu vào và 1 đầu ra Đầu ra thực hiện phép cộng module 2 các đầu vào
4.2 Đại số Boole
Đại số Boole sử dụng các biến logic và các phép toán logic Biến logic chỉ
có thể nhận giá trị 1 (True) hoặc 0 (False) Do các biến chỉ nhận một trong hai giá trị nên đại số Boole dễ tính hơn đại số thường Ở đại số Boole không có phân số,
số thập phân, khai căn, số ảo, số phức,… mà chỉ thực hiện 3 phép toán logic cơ bản là:
- Phép AND: A AND B => Ký hiệu: A.B
- Phép OR: A OR B => Ký hiệu: A+B
- Phép NOT: NOT A => Ký hiệu: A
Thứ tự ưu tiên các phép toán: NOT => AND =>
OR Các phép toán mở rộng:
Bảng 4.1: Các phép toán logic
Trang 35Các hằng đẳng thức của đại số Boole:
Bảng 4.2: Các đồng nhất thức của đại số Boole
4.3 Mạch tổ hợp
Mạch tổ hợp là mạch logic mà tín hiệu đầu ra phụ thuộc hoàn toàn vào tín hiệu đầu vào
Một mạch logic tổ hợp bất kỳ nếu cho trước chức năng ta đều có thể thiết kế
và thực hiện được Các bước tiến hành như sau:
1 Từ yêu cầu chức năng ta lập bảng chân lý của hàm
2 Từ bảng chân lý suy ra phương trình logic
3 Tối giản hoá hàm logic
4 Từ hàm logic thiết kế mạch thực hiện bằng các phần tử cơ bản
4.3.1 Mạch cộng (Adder)
1 Mạch cộng bán phần (HA-Half Adder)
Mạch bán tổng có hai lối vào A và B, có 2 lối ra là tổng S (Sum) và lối
ra nhớ chuyển sang hàng sau C0 (Carry Out) Bảng chân lý được mô tả như
sau:
Sơ đồ logic bộ bán tổng (HA)
Hình 4.8: Sơ đồ mạch cộng bán phần
2 Mạch cộng toàn phần (FA-Full Adder)
Bộ tổng toàn phần có 3 lối vào A, B, Ci (Carry-in), hai lối ra là tổng
A
Trang 36S và lối ra nhớ chuyển sang hàng sau C0 (Carry-out) Bảng chân lý đƣợc
4.3.2 Mạch trừ (Subtractor)
1 Mạch trừ bán phần (HS - Half Subtractor)
Là một mạch logic thực hiện phép trừ hai số nhị phân 1 bit Đầu vào
là A, B và 2 lối ra là hiệu D (Difference) và lối ra mƣợn B0 (Borrow out)
2 Mạch trừ toàn phần (FS - Full Subtractor)
Mạch hiệu toàn phần có 3 lối vào A, B, Bi (Borrow-in: lối vào mƣợn) Hai lối ra là hiệu D và lối ra mƣợn Bout
Trang 37Sơ đồ logic của mạch hiệu toàn phần FS
- Có 2 loại bộ so sánh: Bộ so sánh đơn giản và Bộ so sánh đầy đủ
HS
I
Trang 38Ta thấy, n-đường điều khiển dùng để đánh địa chỉ cho N đầu vào Do vậy, sẽ có tối đa 2n đầu vào, nên N <= 2n
Sơ đồ khối của MUX 2n 1 (2n đầu vào, 1 đầu ra) được biểu diễn như sau:
Trang 394.3.5 Mạch phân kênh (Demux)
Mạch phân kênh là mạch có 1 đầu vào (X), n đường điều khiển, 1 đầu vào chọn mạch và 2n đầu ra
Tuỳ theo giá trị của n đường điều khiển mà đầu ra thứ i (Yi) sẽ bằng giá trị của đầu vào Nếu gọi n đường điều khiển là An-1An-2 A1A0 thì Yi=X khi (An-1An-2 A1A0)2
= (i)10
Sơ đồ khối của Demux 1đầu vào và 2n đầu ra được biểu diễn như sau:
a Sơ đồ khối ; b DEMUX là 1 chuyển mạch điện tử
- Ký hiệu tương ứng với một đối tượng được gọi là từ mã Ví dụ:
- Chức năng: thực hiện việc mã hóa các tín hiệu tương ứng với các đối tượng thành các từ mã nhị phân
n
X (Đầu vào)
Trang 40hóa
C D
Dịch bit là một thao tác cơ sở, một số phép toán số học và logic của các bộ vi
xử lý trong máy tính dựa trên thao tác này
Bộ mã
tín hiệu
hóa
tín hiệu