Tài liệu Bài giảng Cấu trúc máy tính: BÀI GIẢNG CẤU TRÚC
MÁY TÍNH
1
CHƢƠNG I: GIỚI THIỆU CHUNG
Mục tiêu của chƣơng
Giúp sinh viên phân biệt được các khái niệm cơ bản liên quan đến máy tính,
các cách gọi tên máy tính theo một tiêu chí cụ thể. Hiểu rõ ý nghĩa và lịch sử phát
triển của Máy tính.
Tóm tắt
Nội dung chương này trình bày các khái niệm thường gặp như Máy tính, Phần
mềm, Phần cứng, ... Giới thiệu các cách phân loại theo các tiêu chí khác nhau để
tránh nhầm lẫn trong cách gọi tên một máy tính. Giới thiệu nhanh về lịch sử phát
triển.
1.1. Khái niệm chung Máy tính
Máy tính (computer) là một thiết bị có khả năng thao tác (lưu trữ, xử lý) trên
dữ liệu (thông tin) theo một cách phức tạp và lập trình được. Việc tính toán của nó
thực hiện theo một chương trình. Dữ liệu có thể được biểu diễn dưới rất nhiều hình
thức của thông tin như: số, ký tự, hình ảnh, âm thanh, … Trước khi phát minh ra
máy tính, thuật ngữ computer thường được dùng để ám chỉ một người chuyên làm
nhiệm vụ tính toán (...
106 trang |
Chia sẻ: hunglv | Lượt xem: 1833 | Lượt tải: 3
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Cấu trúc máy tính, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BÀI GIẢNG CẤU TRÚC
MÁY TÍNH
1
CHƢƠNG I: GIỚI THIỆU CHUNG
Mục tiêu của chƣơng
Giúp sinh viên phân biệt được các khái niệm cơ bản liên quan đến máy tính,
các cách gọi tên máy tính theo một tiêu chí cụ thể. Hiểu rõ ý nghĩa và lịch sử phát
triển của Máy tính.
Tĩm tắt
Nội dung chương này trình bày các khái niệm thường gặp như Máy tính, Phần
mềm, Phần cứng, ... Giới thiệu các cách phân loại theo các tiêu chí khác nhau để
tránh nhầm lẫn trong cách gọi tên một máy tính. Giới thiệu nhanh về lịch sử phát
triển.
1.1. Khái niệm chung Máy tính
Máy tính (computer) là một thiết bị cĩ khả năng thao tác (lưu trữ, xử lý) trên
dữ liệu (thơng tin) theo một cách phức tạp và lập trình được. Việc tính tốn của nĩ
thực hiện theo một chương trình. Dữ liệu cĩ thể được biểu diễn dưới rất nhiều hình
thức của thơng tin như: số, ký tự, hình ảnh, âm thanh, … Trước khi phát minh ra
máy tính, thuật ngữ computer thường được dùng để ám chỉ một người chuyên làm
nhiệm vụ tính tốn (human computer)
Khái niệm chƣơng trình (program):
Chương trình là dãy các câu lệnh trong bộ nhớ, nhằm mục đích hướng dẫn
máy tính thực hiện một cơng việc cụ thể nào đấy.
Khái niệm phần mềm (software):
Bao gồm các thuật tốn và các biểu diễn cho máy tính của chúng ta, đĩ chính
là các chương trình. Chương trình cĩ thể được biểu diễn (lưu trữ) trên bìa đục lỗ,
băng từ, đĩa từ, … hay các mơi trường khác, tuy nhiên cái cơ bản nhất của phần mềm
chính là tập hợp các câu lệnh (chỉ thị) tạo nên chương trình chứ khơng phải là mơi
trường vật lý được sử dụng để ghi (lưu trữ) chương trình.
Nhận thơng tin vào
Xử lý thơng tin theo chương
trình được lưu trong bộ nhớ
Đưa thơng tin ra
Hình 1: Mổ tả chức năng của Máy tính
2
Phần cứng (Hardware):
Chương trình được viết bằng ngơn ngữ máy ở mức 1 cĩ thể được thi hành
trực tiếp bởi các mạch điện mà khơng cần một trình thơng dịch hoặc trình biên dịch
trung gian nào cả. Các mạch điện như vậy cùng với bộ nhớ và các thiết bị ngoại vi
(vào/ra) tạo thành phần cứng máy của tính (hardware). Phần cứng bao gồm các đối
tượng hữu hình như các vi mạch (IC), các bảng (board) mạch in, cáp nối, nguồn
điện, bộ nhớ, máy đọc bìa, máy in, terminal, … chứ khơng phải là các ý tưởng, các
thuật tốn hay các câu lệnh (chỉ thị).
Phần sụn (Firmware):
Phần sụn (hay cịn gọi là phần dẻo) là dạng trung gian giữa phần cứng và
phần mềm, nĩ là phần mềm được nhúng vào các mạch điện tử trong quá trình chế
tạo ra các mạch điện tử này. Firmware được sử dụng khi các chương trình hiếm khi
hoặc khơng bao giờ cần thay đổi.
Một ví dụ trực quan cho phần sụn chính là ROM BIOS chứa các chương
trình khởi động, các dịch vụ vào/ra cơ sở, dữ liệu về cấu hình của hệ thống, … mà
chúng đã được tối ưu, hồn chỉnh khơng cần phải thay đổi nữa (ít thay đổi). Hay các
phần mềm trong đồ chơi hoặc trong các dụng cụ máy mĩc, điện thoại di động, …
Nĩi chung một thao tác được thực hiện bằng phần mềm thì cũng cĩ thể xây
dựng phần cứng để thực hiện trực tiếp thao tác đĩ, ngược lại mọi thao tác (các lệnh –
chỉ thị) được thực hiện bằng phần cứng thì cũng cĩ thể mơ phỏng bằng phần mềm.
Việc quyết định đưa những chức năng nhất định nào vào phần cứng và các
chức năng nào vào phần mềm được dựa trên các yếu tố như giá cả, tốc độ, độ tin cậy
và tần xuất của sư thay đổi cĩ thể xảy ra. Khơng cĩ những quy tắc bắt buộc quy định
một cách rõ ràng rằng phải đưa thao tác X này vào trong phần cứng, cịn thao tác Y
phải được thực hiện bằng phần mềm (được lập trình). Những người thiết kế máy tính
khác nhau, với những mục tiêu khác nhau cĩ thể thường quyết định khác nhau về
vấn đề này.
1.2. Phân loại máy tính
Cĩ nhiều phương pháp và cách phân loại khác nhau, ở đây ta nêu lên một số
phương pháp phân loại máy tính điện tử.
a. Phân loại theo phƣơng pháp truyền thống.
Máy vi tính ( Microcomputer)
Một thiết bị hay hệ thống điện tử cĩ khả năng xử lý dữ liệu, dùng để tính tốn
hay kiểm sốt các hoạt động mà cĩ thể biểu diễn dưới dạng số hay quy luật logic.
3
Máy tính nhỏ (Minicomputer)
Là một dạng máy
tính nhỏ cầm tay, với tốc
độc trung bình, cĩ khả
năng xử lý và thực thi các
chương trình cỡ nhỏ và
chuyên biệt.
Máy tính lớn (Mainframe Computer)
Máy tính cỡ lớn, thường là các máy tính chủ trong các hệ thống mạng của
cơng ty hoặc nhà máy
Siêu máy tính (Super Computer)
Một siêu máy tính 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 Tốn được dùng lần đầu trong báo New York World vào năm
1920 để nĩi đến những bảng tính (tabulators) lớn của IBM làm cho trường Đại học
Columbia. Siêu máy tính hiện nay cĩ tốc độ xử lý hàng trăm teraflop (một teraflop
tương đương với hiệu suất một nghìn tỷ phép tính/giây) hay bằng tổng hiệu suất của
6.000 chiếc máy tính hiện đại nhấ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.
Siêu máy tính Roadrunner của IBM - 2008
Hình 2: Mini Computer
Hình 3: Siêu Máy tính của Roadrunner IBM 2008
4
b. Phân loại theo phƣơng pháp hiện đại
Máy tính để bàn (Desktop Computer)
Là máy tính cá nhân, hay máy tính đa năng, đáp ứng nhu cầu mọi người sử
dụng chung trong các lĩnh vực gia đình, văn phịng, giải trí,.v.v.
Máy chủ (Servers)
Phục vụ các yêu cầu từ các máy khách trong hệ thống mạng. Cĩ nhiều loại
máy chủ khác nhau như máy chủ WEB, máy chủ dữ liệu, máy chủ tên miền,…
Siêu máy tính IBM Blue Gene/L nhanh nhất thế giới - 2006.
Cray-2; máy tính nhanh nhất thế giới trong thời gian 1985–1989.
Hình 4: Siêu Máy tính Cray
Hình 5: Siêu Máy tính IBM năm 2006
5
Máy tính nhúng (Embedded Computer)
Máy tính được đặt vào trong một thống lớn, làm nhiệm vụ xử lý thơng tin và
điều khiển khiển hoạt động cho một phần hoặc tồn bộ hệ thống.
c. Phân loại theo nguyên l xây d ng máy tính
Theo phương pháp này máy tính được phân chia thành hai lớp là máy tính
tương tự và máy tính số. Mỗi lớp lớn này lại cĩ thể được chia thành các lớp con, ví
dụ máy tính đa năng và máy tính chuyên dụng . . .
Máy tính số (Digital Computer)
Máy tính số là loại máy tính sử dụng các đại lượng vật lý biến thiên rời rạc
(dạng số) để biểu diễn các đại lượng cần tính tốn. Những thơng số cơ bản của máy
tính số là: tốc độ hoạt động, hệ thống lệnh và số địa chỉ của các lệnh, các thiết bị nhớ
và dung lượng của chúng, tổ hợp các thiết bị vào/ra số liệu, kích thước, . . .
Người ta cĩ thể phân loại máy tính số dựa trên một số cơ sở khác nhau, đĩ là
cĩ thể là cách thức thi hành một chương trình, là nhiệm vụ mà người thiết kế định ra
cho máy tính, . . . Sau đây là ví dụ về sự phân loại trên.
Phân loại máy tính số (MTS) theo cách thức thi hành chƣơng trình
- MTS tuần tự: là MTS trong đĩ các chương trình được thi hành từng lệnh
một, hết lệnh này đến lệnh khác.
- MTS song song: là MST cĩ thể thi hành đồng thời nhiều chương trình.
MTS song song cần cĩ nhiều trang thiết bị hơn và phức tạp hơn MTS
liên tiếp nhưng cĩ tốc độ tác động cao hơn.
- MTS tuần tự - song song: Là loại MST trung gian giữa hai loại máy tính
số nêu trên, trong đĩ các phép tính theo mã của chương trình được liên
tiếp đưa vào các bộ phận của máy tính, cịn cĩ các bộ phận thi hành các
phép tính một cách song song.
Hình 6: Máy tính nhúng điều khiển điện và điều khiển ơtơ.
6
- Ngày nay, trong tất cả các máy tính, kể cả loại máy tính được gọi là tuần
tự, người ta cũng áp dụng các cơ chế thực hiện song song ở các mức độ
khác nhau để nâng cao tốc độ hoạt động chung của máy tính điện tử.
Phân loại máy tính số theo nhiệm vụ mà ngƣời thiết kế định ra cho nĩ
- MTS chuyên dụng: Là loại MTS được chế tạo ra để giải quyết một loại
bài tốn nhất định, nĩ thường đơn giản và rẻ tiền hơn MTS đa năng nhờ
việc cĩ thể giảm bớt một số thành phần của máy tính và thậm chí cả việc
rút gọn tập lệnh của bộ vi xử lý của máy. Như các máy tính ứng dụng
trong điều khiển Robot, điều khiển máy bay, vệ tinh, ...)
- MTS đa năng: Là loại MTS được chế tạo ra để giải một lớp lớn các bài
tốn mà thành phần của lớp bài tốn này cĩ thể cịn chưa được nêu đầy
để khi thiết kế máy.
Máy tính tƣơng t (Analog Computer)
Máy tính tương tự (MTTT) là loại máy tính
sử dụng các đại lượng vật lý biến thiên liên tục để
biểu diễn các đại lượng cần tính tốn. Đại lượng vật
lý đĩ thường là điện áp hoặc dịng điện.
Các MTTT vận hành rất thuận tiện, thường
đưa ra kết quả dưới dạng đồ thị, đặc biệt với thời
gian cực kỳ ngắn (tốc độ thi hành rất cao).
MTTT cĩ các nhược điểm chính sau: kết quả
cĩ độ chính xác khơng cao lắm, sự hoạt động của nĩ
khơng mềm dẻo như MTS, khả năng giải bài tốn
phụ thuộc nhiều vào chính phần cứng của máy.
Sự khác nhau cơ bản giữa MTTT và MTS là
MTS chỉ làm được các phép tính số học cổ điểm như
cộng, trừ, nhân, chia; để thực hiện các tổ hợp gồm
các phép tính cộng và nhân,… những lệnh mà bộ
cộng của MTTT chỉ làm trong nháy mắt thì ở MTS
phải cĩ một chương trình đặc biệt để sắp xếp dần dần
các phép tính số học chủ yếu thành các tổ hợp cần
thiết.
Máy tính lai (Hybrid Computer)
Đĩ là loại máy tính kết hợp cả hai nguyên lý số và tương tự, trong hệ thống
này cĩ một nửa là số và một nửa là tương tự. Nửa số, về thực chất là một máy tính số
GTE Analog Computer EA22
Hình 7: Máy tính tƣơng t
Hình 8: GTE Analog Computer EA22
7
hoặc là một tập hợp các phần tử tính tốn số. Nửa tương tự là một máy tính là một
máy tính tương tự hoặc là một tập hợp các phần tử tính tốn tương tự. Trong quá
trình tính tốn, hai nửa này truyền dữ liệu cho nhau thơng qua các bộ chuyển đổi
(convertor). Việc đồng bộ hoạt động của hai nửa cĩ thể do một đơn vị điều khiển
riêng hoặc do đơn vị điều khiển của máy tính số đảm nhiệm.
1.3. Lịch sử phát triển của máy tính
1.3.1. Máy tính cơ khí
Năm 1942, nhà khoa học Pháp Blaise
Pascal xây dựng một máy đầu tiên thực hiện
cơng việc tính tốn. Ðây là thiết bị hồn tồn
bằng cơ khí sử dụng các bánh răng và cung cấp
lực bằng một cánh tay quay. Nĩ chỉ thực hiện
được các phép tốn cộng và trừ. 30 năm sau,
nhà tốn học Ðức Baron Gottfried Wilherm
von Leibniz xây dựng một máy cơ khí làm
được phép nhân và chia.
Sau đĩ, giáo sư Charles Babbage đã thiết kế
và xây dựng máy sai phân (difference engine). Nĩ
được thiết kế để chạy một giải thuật đơn: phương
pháp sai phân hữu hạn sử dụng các đa thức và ỡung
chỉ thực hiện các phép tốn cộng và trừ. Năm 1834,
Babbage thiết kế và xây dựng máy phân tích
(analytical engine). Máy phân tích cĩ 4 thành phần:
bộ lưu trữ (bộ nhớ), bộ tính tốn, thành phần nhập
(đầu đọc thẻ đục lỗ) và thành phần xuất (in và đục lỗ).
Bộ tính tốn cĩ thể nhận các tốn hạng từ bộ lưu trữ,
thực hiện phép tốn cộng, trừ, nhân hay chia chúng và
trả kết quả về bộ lưu trữ.
Phát triển tiếp theo của máy phân tích là máy đa năng. Máy đọc lệnh từ các
thẻ đục lỗ và thực thi chúng. Bằng cách đục lỗ một chương trình khác trên thẻ nhập,
máy phân tích cĩ khả năng thực hiện các tính tốn khác. Lập trình viên máy tính dầu
tiên là Ada Lovelace đã tạo ra phần mềm cho máy phân tích.
1.3.2. Máy tính đèn diện tử - thế hệ thứ nhất
Nam 1943, máy tính số điện tử đầu tiên trên thế giới bắt đầu hoạt động, máy
Colossus do Alan Turing thiết kế nhằm thực hiện giải mã các thơng diệp đã mã hĩa
trong chiến tranh thế giới thứ 2. Cũng trong năm 1943, Mauchley và Presper Eckert
bắt đầu tiến hành xây dựng máy tính ENIAC (Electronic Numerical Integrator And
Hình 9: Máy tính cơ khí
Hình 10: Bìa đục lỗ
8
Computer). ENIAC gồm 1800 đèn điện tử và 1500 relay, cân nặng 30 tấn, cơng suất
tiêu thụ 140 kWh. Nĩ cĩ tất cả 20 thanh
ghi, mỗi thanh ghi cĩ thể lưu trữ một số
thập phân 10 chữ số.
Sau dĩ, John von Neumann thiết
kế máy IAS dựa trên cơ sở máy EDVAC,
là một phiên bản nâng cao của ENIAC.
Máy von Neumman cĩ 5 phần cơ bản: bộ
nhớ, đơn vị luận lý số học (ALU –
Arithmetich Logic Unit), đơn vị điều
khiển chương trình, thiết bị nhập và thiết
bị xuất. Bộ nhớ cĩ tất cả 4096 từ, mỗi từ
lưu trữ 40 bit. Mỗi từ chứa 2 lệnh 20 bit hay một số nguyên cĩ dấu 39 bit. Mỗi lệnh
20 bit gồm cĩ 8 bit xác định loại lệnh và 12 bit xác định 1 trong 4096 từ nhớ
Vào cùng thời gian của máy IAS, các nhà nghiên cứu ở MIT cung dang xây
dựng một máy tính, máy Whirlwind 1. Nĩ cĩ từ dài 16 bit và thiết kế để điều khiển
thời gian thực.
1.3.3. Máy tính transistor – thế hệ thứ hai
Nam 1948, John Bardeen, Walter Brattain và William Shockley phát minh ra
transistor đã tạo ra cuộc cách mạng trong linh 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 tương tự như Whirlwind 1.
Nam 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 nam 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.
Trong khi dĩ, IBM xây dựng một phiên bản của 709 bằng transistor, dĩ là
máy tính 7094 cĩ thời gian một chu kỳ là 2 µs và bộ nhớ 32K từ 36 bit. Nam 1964,
cơng ty CDC giới thiệu máy 6600 cĩ tốc dộ nhanh hơn 7094 do bên trong CPU cĩ
một co 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ả nang thực thi 10 lệnh dồng thời.
1.3.4. Máy tính IC – thế hệ thứ ba
Vi mạch duợc phát minh cho phép đặt vài chục transistor trong một chip
đơn. Việc này giúp cho các máy tính xây dựng trên IC nhỏ hơn, nhanh hơn và rẻ hơn
so với các máy tính transistor. Lúc này, IBM giới thiệu một sản phẩm đơn, máy
Hình 11: Máy tình dùng đèn điện tử
9
System 360, được thiết kế dựa trên các vi mạch. Ðổi mới quan trọng trong 360 là
khả nang da lập trình (multiprogramming), cĩ vài chương trình trong bộ nhớ dồng
thời để khi một chương trình dang chờ xuất / nhập dữ liệu thì chương trình khác cĩ
thể tính tốn. Một dặc trung khác của 360 là khơng gian địa chỉ lớn (thời diểm lúc
dĩ), với 224 byte nhớ (16 MB).
1.3.5. Máy tính cá nhân và VLSI – thế hệ thứ tƣ
Vào thập niên 80, vi mạch VLSI (Very Large Scale Integrate) cĩ khả năng
chứa hàng triệu transistor trên một chip đơn đã được chế tạo. Sự phát triển này dẫn
đến việc sản xuất các máy tính nhỏ hơn và nhanh hơn. Do dĩ, giá cả đã giảm xuống
đến mức một cá nhân cĩ thể sở hữu một máy tính. Các máy tính cá nhân thường
dùng cho việc xử lý các bảng tính và các ứng dụng tương hỗ khác. Các máy tính
trong thế hệ này cĩ thể chia thành 5 loại: máy tính cá nhân, máy tính mini,
mainframe, siêu máy tính.
10
CHƢƠNG II: HỆ THỐNG MÁY TÍNH
Mục tiêu của chƣơng
Giúp sinh viên biết và hiểu được chức năng của các thành phần cơ bản trên
Máy tính. Từ đĩ cĩ thể xác định được các thành phần đĩ trên một máy tính thực.
Đồng thời hiểu được cấu trúc cũng như vai trị quan trọng của bo mạch chủ
(Mainboard).
Tĩm tắt
Nội dung của chương trình bày vắn tắt: Cấu trúc và chức năng của các thành
phần trên Máy tính, đưa ra các thuật ngữ gắn với các thành phần đĩ. Nguyên lý làm
việc của máy tính. Ý nghĩa, cấu trúc và vai trị của bo mạch chủ.
2.1. Các thành phần cơ bản của máy tính
Mơ hình chung của một máy tính
Memory
CPU
Phèi ghÐp vµo ra
(I/O)
Bus hƯ thèng
TB
Vµo
TB
Ra
Hình 12: Sơ đồ khối nguyên lý một hệ thống Máy tính
11
Hình 13: Sơ đồ khối một Mainboard
2.1.1. CPU
CPU viết tắt của Central Processing Unit, tạm dịch là đơn vị xử lí trung tâm.
CPU cĩ thể được xem như não bộ, một trong những phần tử cốt lõi nhất của máy vi
tính. Nhiệm vụ chính của CPU là xử lý các chương trình và dữ liệu. CPU cĩ nhiều
kiểu dáng khác nhau. Ở hình thức đơn giản nhất, CPU là một con chip với vài chục
chân. Phức tạp hơn, CPU được ráp sẵn trong các bộ mạch với hàng trăm con chip
khác.
Các thành phần cơ bản của CPU
Đơn vị điều khiển (CU:Control Unit): Điều khiển hoạt động của máy tính
theo chương trình đã định sẵn.
Đơn vị số học và logic (ALU: Arithmetic And Logic Unit): thực hiện các
phép tốn số học và logic trên các dữ liệu cụ thể.
Tập thanh ghi (RF: Register File): Lưu trữ các thơng tin tạm thời phục vụ
cho hoạt động của CPU.
Đơn vị nối ghép BUS(BIU: Bus Interface Unit): kết nối và trao đổi thơng
tin giữa Bus bên trong và Bus bên ngồi CPU.
12
2.1.2. ộ nhớ trong
Là loại bộ nhớ mà CPU cĩ thể truy cập trực tiếp, cĩ tốc độ cao và dung
lượng thường nhỏ. Bộ nhớ trong chia làm 2 loại
Bộ nhớ chính (Main Memmory): Như ROM và RAM
Bộ nhớ đệm Cache
RAM (Random Access Memory), hay Bộ nhớ truy cập ngẫu nhiên:
Tốc độ truy cập nhanh, lưu trữ giữ liệu tạm thời, dữ liệu sẽ bị mất vĩnh viễn
khi khơng cịn nguồn điện cung cấp.
ROM (Read Only Memory), hay Bộ nhớ chỉ đọc:
Lưu trữ các chương trình mà khi mất nguồn điện cung cấp sẽ khơng bị (xĩa)
mất. Ngày nay cịn cĩ cơng nghệ FlashROM tức bộ nhớ ROM khơng những chỉ đọc
mà cịn cĩ thể ghi lại được, nhờ cĩ cơng nghệ này BIOS được cải tiến thành
FlashBIOS.
Cache:
Cache là tên gọi của bộ nhớ đệm – nơi lưu trữ các dữ liệu nằm chờ các ứng
dụng hay phần cứng xử lý. Mục đích của nĩ là để tăng tốc độ xử lý. Cache là một cơ
chế lưu trữ tốc độ cao đặc biệt. Nĩ cĩ thể là một vùng lưu trữ của bộ nhớ chính hay
một thiết bị lưu trữ tốc độ cao độc lập.
Cache cấu tạo bằng bộ nhớ tĩnh (SRAM) cĩ tốc độ cao nhưng đắt tiền thay
vì bộ nhớ động (DRAM) cĩ tốc độ thấp hơn và rẻ hơn, được dùng cho bộ nhớ chính.
Cơ chế lưu trữ bộ nhớ cache này rất cĩ hiệu quả. Bởi lẽ, hầu hết các chương trình
thực tế truy xuất lặp đi lặp lại cùng một dữ liệu hay các lệnh giống nhau. Nhờ lưu trữ
các thơng tin này trong Cache, máy tính sẽ khỏi phải truy xuất vào RAM vốn chậm
chạp hơn.
Một số bộ nhớ cache được tích hợp vào trong kiến trúc của các bộ vi xử lý.
Chẳng hạn, CPU Intel đời 80486 cĩ bộ nhớ cache 8 KB, trong khi Pentium là 16 KB.
Các bộ nhớ cache nội (internal cache) như thế gọi là Level 1 (L1) Cache (bộ nhớ
đệm cấp 1). Các máy tính hiện đại hơn thì cĩ thêm bộ nhớ cache ngoại (external
cache) gọi là Level 2 (L2) Cache (bộ nhớ đệm cấp 2). Các cache này nằm giữa CPU
và bộ nhớ hệ thống RAM. Sau này, do nhu cầu xử lý nặng hơn và với tốc độ nhanh
hơn, các máy chủ (server), máy trạm (workstation) và mới đây là CPU Pentium 4
Extreme Edition được tăng cường thêm bộ nhớ đệm L3 Cache.
13
Hình 14: Vị trí của Cache trong hệ thống
2.1.3. ộ nhớ ngồi
Cĩ dung lượng lớn, để lưu các chương trình và dữ liệu lâu dài, như HDD,
CDROM, Tape, ...
Các loại bộ nhớ dựa trên cơng nghệ FlashROM: Kết hợp với chuẩn giao tiếp
máy tính USB (Universal Serial Bus) tạo ra các bộ nhớ máy tính di động thuận tiện
và đa năng như: Các thiết bị giao tiếp USB lưu trữ dữ liệu, thiết bị giao tiếp USB
chơi nhạc số, chơi video số; khĩa bảo mật qua giao tiếp USB; thẻ nhớ... Dung lượng
thiết bị lưu trữ FlashROM đã lên tới 32GB (Samsung cơng bố năm 2005), trong
tương lai, cĩ thể FlashROM sẽ dần thay thế các ổ đĩa cứng, các loại đĩa CD, DVD...
2.1.4. Hệ thống vào ra (Input Output System)
Giúp máy tính trao đổi thơng tin với thế giới bên ngồi, bao gồm hai hoạt
động chính là nhận thơng tin Input và gửi thơng tin ra Output.
Đầu vào (Input): Các bộ phận thu nhập dữ liệu hay mệnh lệnh như là bàn
phím, chuột...
Đầu ra (Output): Các bộ phận trả lời, phát tín hiệu, hay thực thi lệnh ra bên
ngồi như là màn hình, máy in, loa, ...
Thơng qua hệ thống vào ra máy tính cĩ thể trao đổi thơng tin với thiết bị
ngồi vi.
Các thiết bị ngoại vi cơ bản:
o Thiết bị vào: bàn phím, chuột, …
o Thiết bị ra: máy in, màn hình,…
o Thiết bị nhớ: đĩa từ, quang,….
o Thiết bị truyền thơng: Modem,…
14
2.1.5. Hệ thống bus
Hệ thống bus (Bus system) làm nhiệm vụ vận chuyển thơng tin giữa các
phần khác nhau trong máy tính (Hệ thống Bus bao gồm bus dữ liệu dùng để vận
chuyển dữ liệu từ bộ nhớ tới CPU hoặc ngược lại. Bus địa chỉ dùng để vận chuyển
tín hiệu địa chỉ (ơ nhớ hay cổng vào/ra do CPU phát ra. Bus điều khiển dùng để vận
chuyển tín hiệu điều khiển do CPU phát ra để điều khiển các khối trong hệ thống
hoặc do thiết bị ngoại vi gửi tới CPU yêu cầu thực hiện một cơng việc nào đĩ).
2.2. Hoạt động cơ bản của máy tính
2.2.1. Chạy chƣơng trình
Là hoạt động cơ bản của Máy tính. Máy tính lặp đi lặp lại quá trình thực
hiện lệnh gồm hai bước cơ bản:
o Nhận lệnh (Fetch)
o Thực hiện lệnh (Execute)
Chương trình dừng khi:
o Mất nguồn
o Gặp lệnh dừng
o Gặp tình huống khơng giải quyết được(lỗi)
Nhận lệnh (Fetch)
o Bắt đầu mỗi chu kỳ lệnh là CPU tiến hành lấy lệnh từ bộ nhớ chính. Trong
quá trình lấy và thực hiện lệnh cĩ 2 thanh ghi bên trong CPU mà ta quan tâm
đĩ là PC (Program Counter) và thanh ghi IR(Instruction Register).
o CPU lấy lệnh từ ngăn nhớ được trỏ bởi PC đưa vào thanh ghi lệnh IR lưu giữ.
o Sau mỗi lệnh được nhận thì nội dung của thanh ghi PC tự động tăng để trỏ tới
lệnh kế tiếp sẽ được thực hiện.
Thực hiện (Execute)
o Bộ xử lý giải mã lệnh đã được nhận và phát tín hiệu điều khiển thực hiện thao
tác mà lệnh yêu cầu thơng qua khối điều khiển CU.
o Thực hiện trao đổi giữa CPU và bộ nhớ chính
o Thực hiện trao đổi giữa CPU và Module I/O.
o Xử lý dữ liệu thực hiện các phép tốn số học và logic.
o Điều khiển rẽ nhánh.
o Kết hợp các thao tác trên.
15
Một số ví dụ về quá trình thực hiện lệnh : Với giả thiết cấu trúc lệnh cĩ dạng như
sau:
Hình 15: Quy trình th c hiện lệnh
Mã lệnh Địa chỉ hay giá trị tốn hạng
16
2.2.2. Hoạt động ngắt
Khái niệm chung về ngắt: Ngắt là cơ chế cho phép CPU tạm dừng chương
trình đang thực hiện chuyển sang thực hiện một chương trình khác, gọi là chương
trình con phục vụ ngắt.
Các loại ngắt
o Ngắt do lỗi thực hiện chương trình: chia cho 0
o Ngắt do lỗi phần cứng: lỗi RAM
o Ngắt do module I/O phát ra tín hiệu ngắt đến CPU yêu cầu trao đổi dữ
liệu
Hoạt động của ngắt : Sau khi hồn thành một lệnh, bộ xử lý kiểm tra tín hiệu ngắt.
o Nếu khơng cĩ ngắt thì bộ xử lý tiếp tục nhận lệnh tiếp theo.
o Nếu cĩ tín hiệu ngắt:
- Tạm dừng chương trình đang thực hiện. Cất ngữ cảnh (thơng tin
cĩ liên quan đến chương trình đang thực hiện).
- Thiết lập bộ đếm chương trình PC trỏ đến chương trình con
phục vụ ngắt
- Thực hiện chương trình con phục vụ ngắt.
- Cuối chương trình con phục vụ ngắt. Khơi phục lại ngữ cảnh và
tiếp tục chương trình đang bị tạm dừng.
2.3. Liên kết hệ thống
2.3.1. Hệ thống US
Chức năng vận chuyển thơng tin giữa các thành phần trong máy tính, như
thơng tin từ CPU tới bộ nhớ, từ CPU tới bộ điều khiển vào ra I/O.
Khái niệm US: Bus là tập hợp các đường dây dùng để vận chuyển thơng
tin từ thành phần này tới thành phần khác bên trong máy tính.
Độ rộng của US : là số đường dây cĩ khả năng vận chuyển các bit thơng
tin đồng thời.
Phân loại US: theo chức năng ta chia bus ra làm 3 loại: BUS địa chỉ, BUS
dữ liệu và BUS điều khiển
17
Hình 16: Liên kết hệ thống thơng qua US
BUS địa chỉ :
Chức năng: dùng để vận chuyển địa chỉ từ CPU đến các Module nhớ hay các
Module vào ra, nhằm để xác định ngăn nhớ hay cổng vào ra nào cần truy xuất
trao đổi thơng tin. (đây là BUS một chiều).
Độ rộng của BUS địa chỉ (A0, A1,…, An-1). Cho biết khả năng quản lý cực
đại số các ngăn nhớ. Nếu sử dụng độ rộng bus địa chỉ n đường thì dung lượng
cực đại của bộ nhớ cĩ thể quản lý là 2n ngăn nhớ hay tương đương với 2n byte
nhớ (nếu mỗi ngắn nhớ 1 byte)
BUS dữ liệu:
Chức năng: vận chuyển lệnh từ bộ nhớ -> CPU, vận chuyển dữ liệu giữa
CPU, bộ nhớ và cổng vào ra.
Độ rộng của Bus dữ liệu (D0, D1,….Dm-1). Cho biết số byte cĩ khả năng trao
đổi đồng thời, m=8,16,32,64,128 bit.
Ví dụ: 8088 -> m=8 ; 8086 -> m=16 ; 80386 -> m=32 ; Pentium -> m=64
18
Hình 17: Các loại US
BUS điều khiển:
Tập hợp các tín hiệu điều khiển gồm cĩ :
Các tín hiệu phát ra từ CPU để điều khiển Module nhớ và Module vào ra.
Các tín hiệu từ Module nhớ, Module vào ra gửi đến CPU yêu cầu.
Ngồi ra cịn là BUS cung cấp nguồn tín hiệu xung nhịp (clock) với các BUS
đồng bộ.
2.3.2. Mainboard
Chức năng
Trong một hệ thống máy tính cĩ khoảng 10 thiết bị khác nhau như: CPU,
RAM, Card Video, Card Sound, Card LAN, HDD, CDROM, FDD, Keyboard,
Mouse. Các thiết bị này cĩ tần số làm việc rất khác nhau, ví dụ: Tần số qua chân
CPU là 800MHz nhưng qua chân RAM là 400MHz và tần số qua Card Sound chỉ cĩ
66MHz. Ngồi ra số đường mạch (số BUS) cũng khác nhau, vì vậy mà các thiết bị
trên khơng thể kết nối trực tiếp với nhau được. Vậy tại sao chúng cĩ thể làm việc với
nhau ?
Mainboard chính là thiết bị đĩng vai trị trung gian để kết nối tất cả các thiết
bị trên hệ thống máy tính liên kết lại với nhau thành một bộ máy thống nhất.
19
Các chức năng của Mainboard:
Gắn kết các thành phần trên một hệ thống máy tính lại với nhau
Điều khiển thay đổi tần số BUS cho phụ hợp với các thành phần khác nhau
Quản lý nguồn cấp cho các thành phần trên Main
Cung cấp xung nhịp chủ (xung Clock) để đồng bộ sự hoạt động của tồn hệ
thống
Chính vì những chức năng quan trọng trên mà khi Main cĩ sự cố thì máy tính
khơng thể hoạt động được.
Hình 18: Sơ đồ khối của một Mainboard
20
Các thành phần chính trên Mainboard
Hình 19: Các thành phần trên Mainboard
Soket (đế cắm CPU)
Cĩ nhiều loại đế cắm cho CPU tuỳ theo chủng loại Mainboard
o Socket 370 trên các Mainboard Pentium 3
o Socket 478 trên các Mainboard Pentium 4
Các chân Socket do Chipset bắc điều khiển.
North Bridge (Chipset bắc)
o Chipset bắc cĩ nhiệm vụ điều khiển các thành phần cĩ tốc độ cao như
CPU, RAM và Card Video
o Chipset điều khiển về tốc độ BUS và điều khiển chuyển mạch dữ liệu,
đảm bảo cho dữ liệu qua lại giữa các thành phần được thơng suốt và
liên tục, khai thác hết được tốc độ của CPU và bộ nhớ RAM
o Cĩ thể ví Chipset giống như một nút giao thơng ở một ngã tư, điều
khiển chuyển mạch như các đèn xanh đèn đỏ cho phép từng luồng dữ
liệu đi qua trong một khoảng thời gian nhất định, cịn điều khiển tốc độ
21
BUS là mỗi hướng của ngã tư khác nhau thì các phương tiện phải chạy
theo một tốc độ quy định.
Sourth Bridge (Chipset nam)
o Chức năng của chipset nam tương tụ như chipset bắc, nhưng chipset
nam điều khiển các thành phần cĩ tốc độ chậm như: Card Sound, Card
Net, ổ cứng, ổ CD ROM, các cổng USB, IC SIO và BIOS v v…
ROM BIOS (Read Olly Memory - Basic In Out System)
ROM là IC nhớ chỉ đọc, BIOS là chương trình nạp trong ROM do nhà sản
xuất Mainboard nạp vào, chương trình BIOS cĩ các chức năng chính sau đây:
o Khởi động máy tính, duy trì sự hoạt động của CPU
o Kiểm tra lỗi của bộ nhớ RAM và Card Video
o Quản lý trình điều khiển cho chipset bắc, chipset nam, IC-SIO và card
video onboard
o Cung cấp bản cài đặt CMOS SETUP mặc định để máy cĩ thể hoạt
động ta chưa thiết lập CMOS
IC SIO (Super In Out) - IC điều khiển các cổng vào ra dữ liệu
o SIO điều khiển các thiết bị trên cổng Parallel như máy In, máy Scaner,
điều khiển ổ mềm, các cổng Serial như cổng COM, cổng PS/2
o Ngồi ra SIO cịn thực hiện giám sát các bộ phận khác trên Main hoạt
động để cung cấp tín hiệu báo sự cố
o Tích hợp mạch điều khiển tắt mở nguồn, tạo tín hiệu Reset hệ thống.
Clockgen (Clocking) - Mạch tạo xung Clock
o Mạch tạo xung Clock cĩ vai trị quan trọng trên Main, chúng tạo xung
nhịp cung cấp cho các thành phần trên Main hoạt động đồng thời đồng
bộ sự hoạt động của tồn hệ thống máy tính, nếu mạch Clock bị hỏng
thì các thành phần trên Main khơng thể hoạt động được, mạch
Clocking hoạt động đầu tiên sau khi Main cĩ nguồn chính cung cấp.
VRM (Vol Regu Module) - Modul ổn áp.
o Đây là mạch điều khiển nguồn VCORE cấp cho CPU, mạch cĩ nhiệm
vụ biến đổi điện áp 12V/2A thành điện áp khoảng 1,5V và cho dịng
lên tới 10A để cấp cho CPU, mạch bao gồm các linh kiện như đèn
Mosfet, IC dao động, các mạch lọc L,C
Khe AGP hoặc PCI Express
22
o Khe AGP và PCI Express dùng để gắn Card video, khe AGP hoặc PCI
Express do Chipset bắc điều khiển.
Khe RAM
o Khe RAM do Chipset bắc điều khiển dùng để gắn bộ nhớ RAM, đây là
bộ nhớ trung gian khơng thể thiếu được trong một hệ thống máy tính.
Khe PCI
o Khe PCI do Chipset nam điều khiển dùng để gắn các Card mở rộng
như Card sound, Card Net …
Cổng IDE
o Cổng IDE do Chipset nam điều khiển, cổng IDE dùng để gắn các ổ đĩa
như HDD, CDROM, DVD …
23
CHƢƠNG III: IỂU DIỄN DỮ LIỆU VÀ SỐ
Mục tiêu của chƣơng
Giúp sinh viên hiểu được cách thức biểu diễn và lưu trữ dữ liệu trong máy
tính dưới dạng số. Hiểu được các thức kiểm sốt lỗi khi truyền thơng trong hệ thống
máy tính thơng qua kỹ thuật mã hố.
Tĩm tắt
Trình bày các hệ số đếm thường dùng trong máy tính như, hệ thập phân, bát
phân, thập lục phân, nhị phân. Cách biểu diễn số thực
3.1. Các hệ đếm cơ bản
3.1.1. Hệ th p phân
Hệ thập phân (hay hệ đếm cơ số 10) là một hệ đếm sử dụng 10 ký tự số. Hệ
đếm này được dùng rộng rãi trên thế giới. Nguồn gốc của nĩ cĩ thể bắt nguồn từ cơ
cấu sinh học của con người, vì mỗi người cĩ 10 ngĩn tay.
Hệ thống ký tự các con số dùng để biểu đạt các giá trị trong một hệ đếm.
Trong hệ thập phân, 10 ký tự (cịn gọi là con số) khác nhau được dùng để biểu đạt 10
giá trị riêng biệt (0, 1, 2, 3, 4, 5, 6, 7, 8 và 9), tức là 10 con số. Những con số này cịn
được dùng cùng với dấu thập phân (ví dụ dấu "phẩy") để định vị phần thập phân sau
hàng đơn vị. Con số cịn cĩ thể được dẫn đầu bằng các ký hiệu "+" hay "-" để biểu
đạt số dương và số âm.
3.1.2. Hệ nhị phân
Hệ nhị phân (hay hệ đếm cơ số 2) là một hệ đếm dùng hai ký tự để biểu đạt
một giá trị số, bằng tổng số các lũy thừa của 2. Hai ký tự đĩ thường là 0 và 1; chúng
thường được dùng để biểu đạt hai giá trị hiệu điện thế tương ứng (cĩ hiệu điện thế,
hoặc hiệu điện thế cao là 1 và khơng cĩ, hoặc thấp là 0). Do cĩ ưu điểm tính tốn
đơn giản, dễ dàng thực hiện về mặt vật lý, chẳng hạn như trên các mạch điện tử, hệ
nhị phân trở thành một phần kiến tạo căn bản trong các máy tính đương thời.
Một số hệ 2 gồm các chữ số 0 và 1 (các bit) và chữ B đi kèm để phân biệt
với các hệ đếm khác khi cùng lúc làm việc với nhiều hệ đếm khác nhau.
- Cụm 4 bit tạo thành 1 nipple.
24
- Cụm 8 bit tạo thành 1 byte.
- Cụm 16 bit tạo thành 1 từ (word).
- Cụm 32 bit tạo thành 1 từ kép (double word).
Chữ số đầu tiên bên trái trong dãy các bit của một số nhị phân gọi là bit cĩ
trọng số lớn nhất (MSB - Most Significan Bit). Chữ số cuối dùng bên phải trong dãy
các bit của một số nhị phân gọi là bit cĩ trọng số bé nhất (LSB - Least Significan
Bit).
Cách đếm trong hệ nhị phân tương tự như cách đếm trong các hệ thống số
khác. Bắt đầu bằng số ở hàng đơn vị với một ký tự, việc đếm số được khai triển dùng
các ký tự cho phép để ám chỉ giá trị, theo chiều tăng lên. Hệ thập phân được đếm từ
ký tự 0 đến ký tự 9, trong khi hệ nhị phân chỉ được dùng ký tự 0 và 1 mà thơi.
Khi những ký tự cho một hàng đã dùng hết (như hàng đơn vị, hàng chục,
hàng trăm trong hệ thập phân), thì con số tại hàng tiếp theo (về bên trái) được nâng
giá trị lên một vị trí, và con số ở hàng hiện tại được hồn trả lại vị trí đầu tiên dùng
ký tự 0. Trong hệ thập phân, chu trình đếm tương tự như sau:
000, 001, 002, ... 007, 008, 009, (số cuối cùng ở bên phải quay trở lại vị trí
ban đầu trong khi số tiếp theo ở bên trái được nâng cấp lên một giá trị)
010, 011, 012, ...
...
090, 091, 092, ... 097, 098, 099, (hai số bên phải chuyển về vị trí ban đầu
trong khi số tiếp theo ở bên trái được nâng cấp lên một giá trị)
100, 101, 102, ...
Sau khi một con số đạt đến ký tự 9, thì con số ấy được hồn trả lại vị trí ban
đầu là số 0, đồng thời gây cho con số tiếp theo ở bên trái được nâng cấp lên một vị
trí mới. Trong hệ nhị phân, quy luật đếm số tương đồng như trên cũng được áp dụng,
chỉ khác một điều là số ký tự được dùng chỉ cĩ 2 mà thơi, tức là ký tự 0 và 1 được
dùng mà thơi. Vì vậy, khi một con số đã chuyển lên đến ký tự 1 trong hệ nhị phân,
sự nâng cấp của giá trị bắt nĩ hồn trả lại vị trí ban đầu, tức là số 0, và nâng cấp con
số tiếp theo về bên trái lên một giá trị:
000, 001, (số cuối bên phải được hồn trả lại vị trí ban đầu, trong khi số ở
hàng bên cạnh về phía tay trái được nâng cấp lên một giá trị)
010, 011, (hai số cuối bên phải được hồn trả lại vị trí ban đầu, trong khi số
ở hàng bên cạnh về phía tay trái được nâng cấp lên một giá trị)
100, 101, ...
25
3.1.3. Hệ th p lục phân
Trong tốn học và trong khoa học điện tốn, hệ thập lục phân (hay hệ đếm
cơ số 16, tiếng Anh: hexadecimal), hoặc chỉ đơn thuần gọi là thập lục, là một hệ đếm
cĩ 16 ký tự, từ 0 đến 9 và A đến F (chữ hoa và chữ thường như nhau). Hệ thống thập
lục phân hiện dùng, được cơng ty IBM giới thiệu với thế giới điện tốn vào năm
1963. Một phiên bản cũ của hệ thống này, dùng các con số từ 0 đến 9, và các con
chữ U đến Z, đã được sử dụng trong máy tính Bendix G-15, ra mắt năm 1956.
Ví dụ : số thập phân 79, với biểu thị nhị phân là 01001111, cĩ thể được viết
thành 4F trong hệ thập lục phân (4 = 0100, F = 1111).
3.1.4. Chuyển đổi giữa các cơ số
Chuyển đổi từ cơ số n sang cơ số 10 (với n = {2, 8, 16, ... ) theo cơng thức
dạng tổng quát ở các phần trên.
Các chuyển đổi sơ A từ cơ số 10 sang cơ số n theo thuật tốn chung là :
Bước 1: Nếu A < n thì kết quả = A, trái lại đến bước 2
Bước 2: A = A chia nguyên cho n, Bi=A chia dư cho n (i=1,2,3,...)
Nếu A = 0 thì đến bước 3 trái lại làm lại bước 2 với i=i+1
Bước 3: Kết quả = BiBi-1Bi-2...B1
Ví dụ : chuyển sang cơ số (n 2)
TT Phép tính Số dƣ TT Phép tính Số dƣ
1 118 ÷ 2 = 59 0 5 7 ÷ 2 = 3 1
2 59 ÷ 2 = 29 1 6 3 ÷ 2 = 1 1
3 29 ÷ 2 = 14 1 7 1 ÷ 2 = 0 1
4 14 ÷ 2 = 7 0
26
Lược trình các con số dư theo thứ tự từ dưới lên trên, cho chúng ta một số nhị
phân 11101102.
Chuyển đổi từ cơ số 2 sang cơ số 16 và ngược lại
Mỗi một ký tự ở cơ số 16 chuyển đổi tương ứng sang 4 bit với cơ số 2 và ngược
lại
VD : F là số cơ số chuyển sang cơ số và ngƣ c lại:
3.2. M hố và lƣu trữ trong máy tính
Nguyên tắc chung về mã hố dữ liệu là mọi dữ liệu được đưa vào máy tính được mã
hố thành số nhị phân.
Các loại dữ liệu:
o Dữ liệu nhân tạo: do con người quy ước
o Dữ liệu tự nhiên: tồn tại khách quan với con người
Mã hố dữ liệu nhân tạo
o Dữ liệu số nguyên: mã hố theo một số chuẩn đã qui ước
o Dữ liệu số thực: mã hố bằng số dấu chấm động
o Dữ liệu phi số (ký tự): mã hố theo các bộ mã ký tự hiện hành như : ASCII,
Unicode,…
Hình 20: Cách thức một tín hiệu v t lý qua Máy tính
Nguyên tắc lưu trữ dữ liệu trên máy tính
9FA
1001 1111 1010
27
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ự chúng lưu trữ 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
o 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.
o 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.
3.3. iểu diễn số nguyên
Máy tính biểu diễn số nguyên chia thành 2 loại
o Biểu diễn số nguyên khơng dấu (unsign integer)
o Biểu diễn số nguyên cĩ dấu (sign integer)
Số nguyên khơng dấu:
Giả sử dùng n bit để biểu diễn số nguyên khơng dấu thì dải số mà n bit biểu
diễn được từ 0 đến 2n-1. Giá trị của số nguyên đĩ được tính:
o Dải miền trị của số nguyên khơng dấu được biểu bằng hình trịn, nghĩa là :
28
Max+1=Min
Min -1=Max
o Giá trị nhỏ nhất bằng 0
o Giá trị lớn nhất bằng 2n-1
Số nguyên cĩ dấu :
Một số nguyên a thì đối của nĩ –a, để mơ tả dược số âm bit cao nhất sẽ được
trích ra sử dụng làm dấu, nếu bít đĩ =1 tương ứng với số âm, nếu bằng 0 tương ứng
với số dương. Giải thiết với một số nguyên cĩ dấu 8 bit thì sẽ được biểu thị như sau:
Như vậy khi sử dụng một bít để biểu thị dấu, với một số nguyên kích thước
n bit thì giá trị tối đa mà nĩ biểu diễn chỉ cịn 2(n-1)-1.
Ta nhận thấy rằng a + (-a) = 0, giả thiết a = 101 với cách biểu diễn số âm
như trên ta cĩ :
+a = 0101
-a = 1101
=> a + (-a) = 0101 + 1101 = 10010 = -2 (nếu coi bit 1 dâu tiên là dấu) 0.
Như vậy với cách biểu thị số âm như trên khơng thỏa mãn đặc tính số đối trong tốn
học. Người ta sử dụng một cách biểu diễn khác là số bù 2.
Số bù 2 :
Max: 255
Min: 0
VD giải giá trị của số nguyên 8 bit
0 7 6
Bit dấu:
= 1: Số âm
= 0: Số dương
Giá trị thực
29
Bù 2 (tiếng Anh: two's complement) là một số trong hệ nhị phân là bù đúng
(true complement) của một số khác. Một số bù 2 cĩ được do đảo tất cả các bit cĩ
trong số nhị phân (đổi 1 thành 0 và ngược lại) rồi thêm 1 vào kết quả vừa đạt được.
Thực chất, số biểu diễn ở dạng bù 2 là số biểu diễn ở bù 1 rồi sau đĩ cộng thêm 1.
Phương pháp bù 2 thường được sử dụng để biểu diễn số âm trong máy tính.
Theo phương pháp này, bit cực trái (là bit nằm bên trái cùng của byte) được sử dụng
làm bit dấu (sign bit - là bit tượng trưng cho dấu của số) với quy ước: nếu bit dấu là
0 thì số là số dương, cịn nếu nĩ là 1 thì số là số âm. Ngồi bit dấu này ra, các bit cịn
lại được dùng để diểu diễn độ lớn của số.
Ví dụ: số nguyên −5 ở hệ thập phân được biểu diễn trong máy tính theo
phương pháp bù 2 như sau (với mẫu 8 bit):
o Bước 1: xác định số nguyên 5 ở hệ thập phân được biểu diễn trong máy
tính là: 0000 0101.
o Bước 2: đảo tất cả các bit nhận được ở bước 1. Kết quả sau khi đảo là:
1111 1010.
o Bước 3: cộng thêm 1 vào kết quả thu được ở bước 2: kết quả sau khi
cộng: 1111 1011.
o Bước 4: vì là biểu diễn số âm nên bit bên trái cùng luơn giữ là 1.
Vậy với phương pháp bù 2, số −5 ở hệ thập phân được biểu diễn trong máy
tính như sau: 1111 1011.
Ngồi cách làm theo định nghĩa như trên ra, ta cịn cĩ thể áp dụng phương
pháp bù 2 theo quy tắc sau: với biểu diễn nhị phân của một số dương cho trước, để
biểu diễn số âm tương ứng, ta bắt đầu tìm từ phải sang trái cho đến khi gặp bit đầu
tiên cĩ giá trị 1. Khi gặp được bit này, ta đảo tất cả các bit từ ngay kề trước nĩ (tức
trước bit cĩ giá trị 1 vừa nĩi tới) cho đến bit cực trái, và luơn nhớ: bit cực trái là 1.
Ví dụ: ta cũng biểu diễn lại số nguyên −5 ở hệ thập phân sang hệ nhị phân
theo quy tắc mới này (giả sử với mẫu 8 bit):
o Bước 1: xác định số nguyên 5 ở hệ thập phân được biểu diễn trong máy
tính là: 0000 0101.
o Bước 2: bắt đầu tìm (từ phải qua trái) bit đầu tiên cĩ giá trị 1, ta thấy, đĩ
là bit thứ nhất (tính từ phải qua).
o Bước 3: đảo tất cả các bit nằm trước bit thu được ở bước 2. Kết quả
nhận được: 1111 1011
o Bước 4: vì là biểu diễn số âm nên bit bên trái cùng luơn giữ là 1.
30
Vậy số −5 ở hệ thập phân được biểu diễn trong máy tính theo phương
pháp bù 2 là: 1111 1011 (hồn tồn giống như kết quả trong ví dụ trên).
3.4. Số h c nhị phân
Phần này chúng ta quan tâm đến các phép tính số học trên số nhị phân, vơ cơ
bản các phép tính +,-,*,/ tương tự với cơ số 10 thơng thường
Phép cộng nhị phân:
Cộng nhị phân được thực hiện theo quy tắc ở Bảng 1
Bảng 1: Quy tắc Cộng Nhị phân.
SỐ HẠNG SỐ HẠNG TỔNG SỐ NHỚ K ẾT QUẢ
0 0 0 0 0
0 1 1 0 1
1 0 1 0 1
1 1 0 1 10
Chú ý: Khi cộng, thực hiện từ bit cĩ trọng số thấp đến bit cĩ trọng số cao.
Ví dụ: Thực hiện các phép Cộng Nhị phân:
1011 + 1100 = 10111
Phép trừ nhị phân:
Phép trừ nhị phân được thực hiện theo quy tắc trình bày ở Bảng 3
Bảng 3: quy tắc Trừ Nhị phân :
SỐ TR SỐ TR HIỆU MƢỢN
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
Chú ý:
Phép tính được thực hiện từ Bit trọng số thấp đến Bit cĩ trọng số thấp đến
Bit cĩ trọng số cao. Số vay sẽ được trừ vào Bit cĩ trọng số cao hơn ở liền kề.
Ví dụ: Thực hiện các tính Trừ Nhị phân sau:
31
1011 – 0110 = 0101
Để thực hiện phép trừ được thuận lợi hơn, người ta chuyển đổi phép trừ
thành phép cộng với số Bù 2 của nĩ.
Phép nhân nhị phân:
Phép nhân nhị phân được thực hiện như nhân thập phân.
Ví dụ: Cĩ phép tính:
Phép chia nhị phân:
Phép chia nhị phân được thực hiện như chia thập phân.
3.5. iểu diễn số dấu chấm động
3.5.1. Số th c dấu ph y t nh
Quy tắc: ta chuyển đổi từng phần nguyên và lẻ theo quy tắc sau:
o Phần nguyên: Chia liên tiếp phần nguyên cho 2 giữ lại các số dư, Số nhị
phân chuyển đổi sẽ là dãy số dư liên tiếp tính từ lần chia cuối về lần chia
đầu tiên.
o Phần lẻ: Nhân liên tiếp phần lẻ cho 2, giữ lại các phần nguyên tạo thành.
Phần lẻ của số Nhị phân sẽ là dãy liên tiếp phần nguyên sinh ra sau mỗi
phép nhân tính từ lần nhân đầu đến lần nhân cuối.
Ví dụ: Chuyển sang hệ Nhị phân số: 13,625
Thực hiện:
Phần nguyên:
32
13:2 = 6 dư 1
6:2 = 3 dư 0
3:2 = 1 dư 1
1:2 = 0 dư 1
=> Phần nguyên của số Nhị phân là 1101
Phần lẻ:
0,625 x 2 = 1,250 Phần nguyên là 1
0,250 x 2 = 0,500 Phần nguyên là 0
0,500 x 2 = 1,000 Phần nguyên là 1 (dừng ở đây vì phân nguyên cịn
lại =0)
=> Phần lẻ của số Nhị phân là: 0,101
=> Ta viết kết quả là: (13,625)10 = (1101,101)2
Chú ý: việc chuyển đổi từ hệ thập phân sang hệ Nhị phân khơng phải luơn
được gọn gàng chính xác, trong trường hợp phép tính chuyển đổi kéo dài, thì tùy
theo yêu cầu về độ chính xác mà ta cĩ thể dùng phép tính ở mức độ cần thiết thích
hợp.
Nhận xét :
Các số dấu phẩy tĩnh chỉ dùng trong các bài tốn yêu cầu độ chính xác
khơng cao và luơn cố định, ví dụ điểm mơn học trong trường ĐH CN tính chính xác
đến 1 số sau dấu phẩy (VD : 4,5). Như vậy các điểm sẽ luơn cĩ độ chính xác trong
khoảng đĩ. Trong thực tế cĩ các bài tốn yêu cầu độ chính xác gần như tuyệt đối như
các bài tốn trong ngân hàng, trong điều khiển máy bay, vệ tinh, ... Các bài tốn này
khơng thể quy định trước một độ chính xác, người ta phải sử dụng số dấu chấm
động, khi đĩ số các số sau dấu phẩy là khơng hạn chế về mặt biểu diễn.
VD : 12e-101=12*10
-101
Vấn đề là biểu diễn các số dấu chấm đơ ng như trên máy tính vơ i cơ
3.5.2. Số dấu chấm động
Nguyên tắc chung
Một số thực x bất kỳ được biểu diễn dưới dạng sau: x = M*RE
Trong đĩ : M - Phần định trị.
R - Cơ số.
E - Phần mũ.
33
Với một hệ thống nào đĩ thì R là cố định. Trong máy tính ngày nay thơng
thường R=2.
Để biểu diễn được với cơ số 2 ta chuyển về dạng tương đương như sau:
X=(-1)
s
*1.M*2
E-B
Trong đĩ: s: là bit dấu (s=0 phần định trị là dương; s=1 phần định trị là âm)
M : là phần định trị.
E: là số mũ được dịch chuyển đi B đơn vị.
R đã được biết (R=2) máy tính lưu số dấu chấm động bao gồm hai
thành phần chính
Chuẩn IEEE 754-1985 phân định 3 dạng số dấu chấm động cơ bản (IEEE: Institute
of Electrical and Electronics Engineers )
o Số cĩ độ chính xác đơn dài 32 bit (single)
o Số cĩ độ chính xác kép dài 64 bit (double)
o Số cĩ độ chính xác mở rộng dài 128bit (quadruple)
Chu n bit:
Xét trường hợp sử dụng 32 bit
8 bit mũ E’ 23 bit định trị
- Phần định trị (M) chiếm 23 bit (cho phần sau dấu phẩy nhị phân).
- Phần mũ E’ chiếm 8 bit.
X= (-1)
s
1.M2E’-127 (127 = 7F)
S E’ M
34
Ví dụ :
Giả sử cĩ một dãy 32 bit như sau:
1 0111 1111 100 0000 0000 0000 0000 0000
- bit dấu S = 1 ( số âm )
- E’ = 0111 1111 = 127
Vậy X = (-1)1 1.1 2127-127 = (-1,1)
Ví dụ :
Chuyển một số thực hệ 10 sang hệ 2 biểu diễn bằng số thực dấu phẩy động:
Cho số 13.2 chuyển sang cơ số 2 là (1101.0011 0011 ........)2
- Di chuyển dấu phẩy về sau số 1 đầu tiên được :
((1,101 0011 0011 ...)23) = (+1,101 0011 0011 ...)23
Phần mũ E = E’ - 127 = 3
E’ = E + 127 = 3 + 127 = (130)10 = (1000 0010)2
S E’ M
0 1000 0010 101 0011 0011 .....
Các qui ước:
- Nếu E’ = 255 và M 0 thì x khơng phải là số hợp lệ
- Nếu E’ = 255 và M = 0 thì x = -∞/+∞
- Nếu E’ = 0 và M = 0 thì x = 0
Chu n 64 bit:
Cũng tương tự như chuẩn 32 bit định dạng chuẩn 64 bit như sau
Dấu Phần mũ Phần định trị
1bit 11 bit 52 bit
S E = E’ - 1023 M
Chu n bit:
Dấu Phần mũ Phần định trị
1bit 15 bit 111 bit
S E = E’ - 16383 M
35
3.6. Biểu diễn k t
Ký tự thường được sử dụng trong các cơng việc hàng ngày trên máy tính,
trong thực tế chúng ta thấy hầu hết các bàn phím của các máy tính đều là các ký tự la
tinh, những tại sao lại cĩ thể soạn được các ngơn ngữ khác nhau trên thế giới. Cụ thể
đối với Việt Nam cĩ các ký tự đặc biệt như â , ậ , … Tại sao máy tính lạ cĩ thể
hiểu và vẫn thể hiện được.
Sự thực là máy tính sử dụng một loại bảng mã gọi là bộ Font, cĩ thể xem
bảng Font là một bảng gồm hai cột như sau:
Mã Ký tự
0 A
1 B
2 C
… …
66 Â
67
… …
Bằng cách này thì thực ra máy tính khơng hề hiểu các ký tự A, , , … khi
ta gõ vào một phím trên bàn phím thì mã số của phím đĩ sẽ được gửi vào máy tính,
sau đĩ tùy thuộc mơi trường ta đang sử dụng bộ Font nào thì ký tự tương ứng sẽ
được vẽ ra.
Mã của phím
được bấm là XX
Mã Ký tự
… …
XX ﻛ
… …
Bảng Font đang dùng
Ký tự thể hiện ﻛ
Hình 21: Cách thức một ký t bất kỳ đƣ c nh p vào từ bàn phím
36
Bảng mã ASCII:
Đây là loại bảng mã 8 bit (Hình 23), số ký tự biểu là 256 ký tự, ngày nay
loại bảng mã này ít được sử dụng vì số ký tự biểu diễn được ít, chỉ đủ dùng cho một
quốc gia, gây bất tiện khi chuyển văn bản từ máy này sang máy khác nếu khác Font.
Bảng mã Unicode
Do các hãng máy tính hàng đầu thế giới kết hợp thiết kế. Kích thước bộ mã
này là 16 bit cĩ thể xây dựng bộ mã tồn cầu với số ký tự cĩ thể mã là 216 ký tự với
128 ký tự đầu cĩ mã trùng mã trong bảng mã ASCII.
Ví dụ một đoạn trên bẳng mã Unicode Hình 22
Hình 22: Ví dụng một đoạn trong bảng mã Unicode
37
Hình 23: Bảng mã ASCII
38
CHƢƠNG IV: Ợ XỬ LÝ TRUNG TÂM CPU
Mục tiêu của chƣơng
Giúp sinh viên hiểu cấu trúc chi tiết
và nguyên tắc làm việc của CPU. Hiểu
được cấu trúc của một số dịng CPU tiên
tiến ngày nay
Tĩm tắt
Trình bày chi tiết cấu trúc của CPU, các cơ
chế định địa chỉ, các tập lệnh căn bản,
nguyên lý thực hiện chương trình. Trình bày cấu trúc một số CPU tiên tiến.
4. Cấu trúc của CPU
4. . . Cấu trúc cơ bản của một CPU
Khối điều khiển CU – Control Unit
Chức năng:
Nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh IP.
Tăng nội dung thanh ghi PC mỗi khi nhận lệnh song
Giải mã lệnh và xác định thao tác mà lệnh yêu cầu
Phát ra tín hiệu điều khiển thực thi lệnh.
39
Nhận các tín hiệu yêu cầu từ BUS hệ thống và giải quyết đáp ứng yêu
cầu đĩ.
Các thơng tin kết nối đến CU
Clock: tín hiệu xung nhịp từ mạch tạo dao động.
Mã lệnh từ thanh ghi lệnh đưa đến CU giải mã
Các trạng thái cờ đưa đến cho biết trạng thái của CPU cũng như trạng
thái thực hiện các phép tốn trong ALU.
Các tín hiệu điều khiển từ BUS điều khiển.
Các tín hiệu điều khiển bên trong CPU: điều khiển thanh ghi, ALU.
Các tín hiệu điều khiển bên ngồi CPU đĩ là Bộ nhớ hay cổng vào ra
Khối Logic tốn học ALU
Chức năng: thực các phép tốn số học và logic
Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo,..
Logic: AND, OR,XOR, NOT, dịch bit,…
Mơ hình kết nối của ALU
40
Tập các thanh ghi
Chức năng
Thực chất là vùng nhớ được CPU nhận biết qua tên thanh ghi và cĩ tốc
độ truy xuất cực nhanh.
Chứa thơng tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của
CPU
Số lượng thanh ghi tuỳ thuộc vào bộ vi xử lý cụ thể -> tăng hiệu năng
CPU
Thanh ghi chia 2 loại: Loại lập trình được và loại khơng lập trình được
Dưới đây là tập các thanh ghi đa năng ở các thế hệ vi xử lý từ 8bit – 64bit:
Phân loại thanh ghi theo chức năng
Thanh ghi địa chỉ: Thanh ghi được sử dụng để quản lý địa chỉ của ngăn
nhớ hay cổng vào ra.
Thanh ghi dữ liệu: Thanh ghi dùng để lưu trữ dữ liệu tạm thời
Thanh ghi đa năng: Thanh ghi cĩ thể chứa dữ liệu hoặc địa chỉ đều
được.
41
Thanh ghi điều khiển/trạng thái: Thanh ghi chứa thơng tin về trạng thái
CPU.
Thanh ghi lệnh: thanh ghi chứa lệnh đang được thực hiện
4.1.2. CPU Dual Core
Cấu trúc chu của một CPU dual core của AMD:
Hình 24: Dual Core của MD
Ta nhận thấy rằng ở thế hệ này 2 nhân CPU được tích hợp trên một chip duy
nhất với cùng kích thước và số chân nhưng tốc độ thực thi tăng gần như gấp đơi. Tuy
nhiến với kiến trúc này vẫn cĩ một nhược điểm đĩ là mỗi Core cĩ một cache riêng,
điều này làm cho hiệu xuất sử dụng cache sẽ khơng cao, vì cĩ khi một core thiếu
cache trong khi core kia khơng sử dụng đến cache của mình.
Cấu trúc CPU dual core của Intell
Hình 25: Smart Cache trong Chip Dual core của Intel
42
Kiến trúc này sử dụng cơng nghệ chia sẻ thơng minh cache L2, nghĩa là 2
core sử dụng chung cache L2 với tổng dung lượng 4MB. Cịn ở thế hệ Dual Core
trước đây, mỗi nhân cĩ cache L2 riêng với dung lượng mỗi cache là 2MB và cĩ
nhược điểm là cache L2 của nhân nào thì nhân đĩ dùng, nếu thừa thì để đĩ và thiếu
thì phải đợi. Việc chia sẻ cache L2 cũng làm tăng băng thơng của từng nhân. Cache
L2 dùng chung được cấp một cách năng động cho từng nhân của CPU dựa vào khối
lượng cơng việc. Việc thực thi tối ưu 2 nhân cĩ hiệu quả này làm tăng khả năng truy
cập dữ liệu của mỗi nhân từ cache L2, giảm thời gian trễ một cách đáng kể cho
những dữ liệu được thường xuyên sử dụng và nâng cao hiệu quả tính tốn.
Một số ƣu điểm vƣ t trội của cơng nghệ dual core:
1) Tăng tốc độ tính tốn song song bằng kỹ thuật siêu phân luồng(Hình 26)
2) Tăng tốc độ thực thi chương trình bằng bằng cơng nghệ chia sẻ với Cache
lớn hơn (Hình 27)
3) Tăng tốc độ xử lý các gĩi Media (Video, ảnh, …) 128bit/lần (Hình 28)
4) Tiết kiệm năng lượng tối đa: Chỉ cấp nguồn cho core nào đang hoặt động.
Hình 26: Siêu phân luồng với đa nhân
43
Hình 27: Chia sẻ Cache thơng minh
Hình 28: Tăng tốc độ xử l Media
44
4. . T p lệnh
Tập lệnh là thứ ngơn ngữ duy nhất mà một CPU cĩ thể hiểu và làm theo. Về
mặt bản chất cĩ thể hiểu rằng mọi chương trình chạy trên máy tính là sự kết hợp các
lệnh và chỉ với những lệnh này theo một cách thức nào đấy nhằm làm một việc cụ
thể. Cũng như ta cĩ Búa, Cưa, Gỗ, Đinh,… Những bằng các cách và quynh trình
khác nhau ta cĩ thể tạo ra Bàn, Ghế, Tủ,…
Một lệnh máy thường cĩ 2 phần:
o Mã thao tác (Operation Code: Opcode): Mã chỉ ra thao tác mà bộ vi xử lý
cần phải thực hiện.
o Địa chỉ tốn hạng (Operand Address): Chỉ ra nơi chứa các tốn hạng mà
mã thao tác sẽ tác động.
Tốn hạng nguồn: dữ liệu vào của thao tác
Tốn hạng đích: dữ liệu ra của thao tác
Một số nhĩm lệnh cơ bản:
o Thao tác chuyển dữ liệu
o Thao tác xử lý số học và logic
o Thao tác vào ra dữ liệu qua cổng
o Thao tác điều khiển rẽ nhánh
o Thao tác điều khiển hệ thống
o Thao tác xử lý số dấu chấm động
o Thao tác chuyên dụng khác: xử lý ảnh, âm thanh, tiếng nĩi,…
a) Các lệnh chuyển dữ liệu
o Lệnh Mov: Sao chép dữ liệu từ tốn hạng nguồn -> đích
Cú pháp: Mov đích, nguồn
o Lệnh Load: Nạp dữ liệu từ bộ nhớ -> bộ xử lý
Cú pháp: Load nguồn
o Lệnh XCHG: Trao đổi nội dung của hai tốn hạng cho nhau
Cú pháp: XCHG tốn_hạng , tốn_hạng
o Lệnh PUSP: Cất nội dung của một tốn hạng nguồn vào stack
45
Cú pháp: PUSH nguồn
o Lệnh POP: Lấy nội dung ở đỉnh Stack ra tốn hạng đích
Cú pháp: POP đích
Ví dụ :
MOV AX , Var 1
MOV Var 2 , AX
b) Các lệnh vào ra
o Lệnh Input:
Cú pháp: Input đích, địa_chỉ_cổng_nguồn
o Lệnh Output
Cú pháp: Out địa_chỉ_cổng_đích, nguồn
Ví dụ :
MOV DX, 278 h
IN AL,DX
c) Các lệnh chuyển điều khiển
o Lệnh Jump: Nhẩy đến vị trí bất kỳ trong chương trình
Cú pháp: Jump Nhãn
o Lệnh Call: Gọi chương trình con
Cú pháp: Call Tên_chƣơng_trình_con
o Lệnh Return : trở về từ chương trình con
Ví dụ:
d) Các lệnh điều khiển hệ thống
o Lệnh Halt : dừng thực hiện chương trình
46
o Lệnh Wait : tạm dừng thực hiện chương trình, lặp kiểm tra cho đến khi
thoả mãn thì tiếp tục thực hiện
o No Operation: khơng thực hiện gì cả
o Lệnh Lock : Cấm khơng cho chuyển nhượng BUS
o Lệnh Unlock: cho phép chuyển nhượng BUS
Các phƣơng pháp xác định địa chỉ tốn hạng
Mỗi một lệnh đều cĩ trường tốn hạng, trong thực tế khi ta lập trình với các
ngơn ngữ bậc cao, cĩ nhiều cách để gán một giái trị cho một biến:
X = 15 // gán tức thì gia trị 15 cho X
X = y // Gán giá trị cho X thơng qua y
X = mang[i // gán giá trị cho X bằng địa chỉ tương đối quan biến
Cách thức để tìm được giá trị và truyền cho X gọi là các cách xác định địa
chỉ, cĩ 7 cách xác định chỉ chính như sau:
a) Chế độ địa chỉ thanh ghi
Dùng thanh ghi như là các tốn hạng chứa dữ liệu cần thao tác, tốc độ thực
hiện lệnh rất nhanh vì CPU khơng mất thời gian tìm kiếm dữ liệu.
Ví dụ:
MOV AL, BL ; AL:= BL
MOV DS, BX ; DS:= BX
ADD AL, DL ; AL:= AL + DL
b) Chế độ địa chỉ tức thì
Tốn hạng đích là thanh ghi, hoặc ơ nhớ. Tốn hạng nguồn là 1 giá trị cụ thể
(hằng số).
Ví dụ:
MOV AL, 0Dh ; AL:=0Dh
47
Lệnh này thường được dùng để nạp dữ liệu cần thao tác vào thanh ghi nào
đĩ.
c) Chế độ địa chỉ tr c tiếp
Một tốn hạng là địa chỉ offset của ơ nhớ chứa giá trị cần thao tác. Tốn
hạng kia là thanh ghi (khơng được là ơ nhớ).
Ví dụ:
MOV AL, [04FCh] ; đưa vào thanh ghi AL nội dung ơ nhớ cĩ địa chỉ logic
; DS:04FCh.
d) Chế độ địa chỉ gián tiếp qua thanh ghi
Một tốn hạng là thanh ghi chứa địa chỉ offset của ngăn nhớ chứa giá trị cần
thao tác. Tốn hạng kia là thanh ghi (khơng được là ngăn nhớ).
MOV [BX], AL ; Đưa nội dung thanh ghi AL vào ngăn nhớ cĩ địa chỉ
; offset nằm trong thanh ghi BX.
e) Chế độ địa chỉ tƣơng đối cơ sở
48
Thanh ghi BX, BP và các hằng số là giá trị dịch chuyển để xác định ngăn
nhớ trong DS, SS chứa giá trị cần thao tác.
Ví dụ:
MOV [BX + N], CL; Đưa nội dung thanh ghi CL vào ngăn nhớ cĩ địa chỉ
; offset BX + N (DS:BX + N)
MOV AL, [BP + N] ; Đưa nội ngăn nhớ cĩ địa chỉ offset BP + N vào thanh
; ghi AL (SS:BP + N)
f) Chế độ địa chỉ tƣơng đối chỉ số
Thanh ghi DI, SI và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ
chứa giá trị trong DS cần thao tác.
Ví dụ:
MOV [SI + N], AH ; Đưa nội dung thanh ghi AH vào ngăn nhớ cĩ địa chỉ
; offset tại SI + N (DS:SI + N).
MOV CL, [DI + N] ; Đưa nội dung ngăn nhớ cĩ địa chỉ offset tại DI + N
; (DS:DI + N) vào thanh ghi CL.
g) Chế độ địa chỉ tƣơng đối chỉ số cơ sở
Chế độ địa chỉ này là sự kết hợp cả 2 chế độ địa chỉ trên. Dùng cả thanh ghi
cơ sở và thanh ghi chỉ số để tính địa chỉ tốn hạng.
Ví dụ:
MOV [BX + SI + N], AX ; Đưa nội dung thanh ghi AX vào ngăn nhớ cĩ địa
; chỉ offset tại BX + SI + N (DS:BX + SI + N).
MOV CL, [BP + DI + N] ; Đưa nội dung ngăn nhớ cĩ địa chỉ offset tại
; BP + DI + N (DS:BP + DI + N) vào th.ghi CL.
4.3. Hoạt động của CPU
a. Nguyên tắc chung
49
Khi bạn kích đúp vào một biểu tượng nào đĩ để chạy chương trình thì những
gì sẽ xảy ra là:
1. Chương trình đã lưu bên trong ổ đĩa cứng(hoặc USB/CDROM) sẽ được
đưa vào bộ nhớ RAM. Ở đây chương trình chính là một loạt các chỉ lệnh
đối với CPU.
2. CPU sử dụng mạch phần cứng được gọi là memory controller để tải dữ
liệu chương trình từ bộ nhớ RAM vào CPU.
3. Lúc đĩ dữ liệu bên trong CPU sẽ được xử lý.
4. Những gì diễn ra tiếp theo sẽ phụ thuộc vào chương trình vừa được nạp.
CPU cĩ thể tiếp tục tải và thực thi chương trình hoặc cĩ thể thực hiện
một cơng việc nào đĩ với dữ liệu đã được xử lý, như việc hiển thị kết
quả thực hiện nào đĩ lên màn hình.
Hình 29: Quy trình chƣơng trình đƣ c lƣu đƣa vào CPU
b. Tải dữ liệu giữa bộ nhớ ngồi và R M
Trước đây, CPU trực tiếp điều khiển việc vận chuyển dữ liệu giữa bộ nhớ
ngồi và RAM. Vì bộ nhớ ngồi thường cĩ tốc độ truy cập thấp hơn so với bộ nhớ
RAM nên nĩ làm chậm quá trình thực thi chương trình cho cả hệ thống, chính vì vậy
CPU sẽ rất bận một cách vơ ích trong việc tải dữ liệu giữa bộ nhớ ngồi và RAM.
Phương pháp này được gọi là PIO, Processor I/O (hay Programmed I/O).
Ngày nay, việc vận chuyển dữ liệu giữa bộ nhớ ngồi và RAM được thực
hiện mà khơng sử dụng trực tiếp đến CPU, điều này làm cho hệ thống hoạt động
nhanh hơn và CPU dành thời gian thay vì phải chuyển dữ liệu sang làm việc khác.
Phương pháp này được gọi là bus mastering hay DMA (Direct Memory Access).
Đây là giải pháp chuyên biệt cho việc vận chuyển dữ liệu.
Các bộ vi xử lý của AMD dựa trên sockets 754, 939 và 940 (Athlon 64,
Athlon 64 X2, Athlon 64 FX, Opteron và một số mơ hình Sempron) cĩ một memory
controller được nhúng bên trong. Điều đĩ cĩ nghĩa rằng với các bộ vi xử lý này,
CPU truy cập bộ nhớ RAM một cách trực tiếp mà khơng sử dụng north bridge chip.
50
c. Giải m và th c thi lệnh
Khối tìm nạp (CU) chịu hồn tồn trách nhiệm về việc nạp các lệnh từ bộ
nhớ. Đầu tiên, nĩ xem lệnh được yêu cầu bởi CPU cĩ trong L1 instruction cache hay
khơng. Nếu khơng cĩ ở đây, nĩ sẽ vào L2 memory cache. Nếu lệnh cũng khơng cĩ
trong L2 memory cache thì nĩ sẽ phải nạp trực tiếp từ bộ nhớ RAM.
Khi bạn bật máy tính, tất cả các cache đều trống rỗng, tuy nhiên khi hệ thống
bắt đầu nạp hệ điều hành, CPU bắt đầu xử lý các lệnh đầu tiên từ ổ cứng và cache
controller bắt đầu nạp lệnh vào cache.
Sau khi khối tìm nạp đã cĩ được lệnh cần thiết cho CPU để được xử lý, nĩ
gửi lệnh này đến khối giải mã.
Khối giải mã sẽ phân tích và chỉ ra lệnh này thực hiện những nhiệm vụ gì.
Sau khi khối giải mã dịch xong lệnh và lấy được tất cả dữ liệu cần thiết để thực thi
lệnh này, nĩ sẽ gửi tất cả cùng với MicroCode của lệnh đĩ đến khối thực thi.
Khối thực thi sẽ thực hiện lệnh này. Trên các CPU hiện đại, bạn sẽ thấy cĩ
nhiều khối thực thi làm việc song song. Điều này nhằm tăng hiệu suất của CPU. Ví
dụ, một CPU cĩ 6 khối thực thi sẽ cĩ thể thực thi đến 6 lệnh song song đồng thời,
chính vì vậy theo lý thuyết nĩ hồn tồn cĩ thể thực hiện được một hiệu suất bằng
với 6 bộ vi xử lý mà chỉ cĩ một khối thực thi.
4.4 Kiến trúc Intel
4.4. . Kiến trúc Intel
Bộ vi xử lý 8088/8086 thực thi chương một chương trình bằng cách lặp đi
lặp lại 3 thao tác chính là lấy lệnh (fetch), giải mã lệnh (decode) và thực hiện
(execute). Sơ đồ khối của bộ vi xử lý 8088/8086 gồm 2 đơn vị chính(Hình 30):
- EU (Execution Unit): Đơn vị (khối) thực hiện lệnh.
- BIU (Bus Interface Unit): Đơn vị giao tiếp bus (khối tương thích bus) để
điều khiển bus hiệu quả hơn.
EU
Đơn vị EU của 8088 và 8086 giống nhau, bao gồm ALU, thanh ghi cờ, các
thanh ghi đệm và các thanh ghi đa năng. Các bus dữ liệu bên trong của EU đều là 16
bit. EU khơng kết nối trực tiếp với bên ngồi, nĩ nhận lệnh từ hàng đợi lệnh bên
trong BUI. Nếu là lệnh cần truy nhập bộ nhớ hoặc cổng vào/ra (I/O port - thiết bị
ngoại vi) thì EU yêu cầu BIU lấy hoặc gửi dữ liệu. Tất cả các địa chỉ mà EU thao tác
đều là 16 bit, khi gửi sang BIU thì BIU sẽ thực hiện tính tốn để tạo địa chỉ vật lý 20
bit và phát ra các chân địa chỉ của chip.
51
Các thanh ghi của EU
Cĩ 8 thanh ghi, là thành phần nhớ cĩ tốc độ truy nhập rất cao. Bao gồm các
thanh ghi đa năng Ax, Bx, Cx, Dx. Mỗi thanh ghi 16 bit cĩ thể được phân chia thành
2 thanh ghi 8 bit làm việc độc lập nhau.
AX (Accumulator, Acc): Thanh chứa, chứa tạm thời dữ liệu (tốn hạng,
kết quả phép tốn như nhân, chia và được coi là Acc). AX cĩ thể được
phân chia thành AH (Phần cao) và AL (Phần thấp).
BX (Base): Thanh ghi cơ sở, thường được dùng để chứa địa chỉ cơ sở cần
truy nhập trong lệnh XLAT. BX cĩ thể được phân chia thành BH (Phần
cao) và BL (Phần thấp).
CX (Count): Bộ đếm, thường được dùng để đếm số lần lặp của cơng việc
(số lần lặp trong các vịng lặp). CX cĩ thể được phân chia thành CH (Phần
các thanh ghi tạm
thanh ghi cờ
Logic
điều khiển
BUS
AX
BX
CX
DX
SP
BP
SI
DI
Khối
điều khiển
của EU
Đệm lệnh (hàng đợi lệnh)
(6 byte cho 8086)
BUS
ngồi
Bus địa chỉ (20 bit)
các thanh ghi
đa năng
các thanh ghi đoạn
và con trỏ lệnh
các thanh ghi
con trỏ
và chỉ số
Bus dữ liệu
ALU(16bit)
Bus dữ liệu
(8 bit)
Bus trong
8 bit dữ liệu
20 bit địa chỉ
EU BIU
CS
DS
SS
ES
IP
Hình 30: Sơ đồ khối 8086/8088
52
cao) và CL (Phần thấp). CX thường được dùng để chứa số lần lặp trong
các lệnh LOOP, cịn CL thường chứa số lần dịch hoặc quay trong các lệnh
dịch quay thanh ghi.
DX (Data): Thanh ghi đữ liệu, sử dụng để chứa tốn hạng, kết quả. DX
cùng AX dùng để chứa tốn hạng hoặc kết quả của các phép nhân, chia số
16 bit. DX cịn chứa địa chỉ cổng trong các lệnh vào ra trực tiếp (IN,
OUT). DX cĩ thể được phân chia thành DH (Phần cao) và DL (Phần
thấp).
Các thanh con trỏ
Các thanh ghi SP, BP là các thanh ghi con trỏ khơng tách rời.
SP (Stack Pointer): Thanh ghi con trỏ ngăn xếp, trỏ vào đỉnh hiện thời của
ngăn xếp nằm trong đoạn ngăn xếp SS (Nĩ luơn kết hợp với thanh ghi
SS). Ta cĩ địa chỉ logic SS: SP. Sau mỗi thao tác cất một word vào stack
(thao tác Push) thì SP tự động giảm 2 đơn vị, cịn sau thao tác lấy một
word ra khỏi stack (thao tác Pop), SP được tự động tăng 2 đơn vị.
BP (Base stack Pointer): Con trỏ cơ sở, luơn trỏ vào một dữ liệu cụ thể
nằm trong đoạn ngăn xếp SS. Ta cĩ địa chỉ logic SS: BP.
SI (Source Index): Thanh ghi chỉ số nguồn (hay nguồn), chỉ vào dữ liệu
nằm trong đoạn DS. Ta cĩ địa chỉ logic DS: SI.
DI (Destination Index): Thanh ghi chỉ số đích, chỉ dữ liệu trong đoạn DS.
Ta cĩ địa chỉ logic DS: DI.
Khối LU
Làm nhiệm vụ thực hiện các lệnh số học và logic.
Số học: +, -, *, /, so sánh, đảo dấu.
Logic: NOT, AND, OR, XOR.
Thanh ghi cờ:
Đây là thanh ghi 16 bit, mỗi bit được sử dụng để thể hiện một trạng thái của
bộ vi xử lý tại một thời điểm nhất định trong quá trình thực hiện chương trình (dãy
các câu lệnh), nhưng chỉ dùng 9 bit đối với bộ vi xử lý 8088/8086. Mỗi bit đĩ được
gọi là một cờ (flag). Giá trị của mỗi cờ được biểu diễn bằng các ký hiệu gợi nhớ như
cách biểu diễn của chương trình Debug của DOS.
OF DF IF TF SF ZF AF PF CF
53
CF (Carry Flag): Cờ nhớ (cờ tràn).
CF = 1 (CY - CarrY) khi kết quả phép tốn vượt (tràn) khuơn khổ biểu diễn
(cĩ nhớ (mượn) lên trên (từ) MSB), CF = 0 (NC - No Carry) trong trường hợp ngược
lại. Cờ này thường được sử dụng khi thực hiện các phép cộng, trừ các số nhiều byte.
Ví dụ:
1011 0001
+ 0110 1001
10001 1010
PF (Parity Flag): Cờ chẵn lẻ.
PF = 1 (PE - Parity Even) khi số bit 1 trong kết quả phép tốn (hay các phép vận
chuyển dữ liệu) là chẵn, PF = 0 (PO - Parity Old) trong trường hợp ngược lại.
AF (Carry Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ).
Cờ này cĩ ý nghĩa khi ta làm việc với số BCD. AF = 1 (AC - Auxiliary Carry) khi cĩ
nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4 bit cao) và
AF = 0 (NA - No Auxiliary carry) trong trường hợp ngược lại.
SF (Sign Flag): Cờ dấu. Trong bộ vi xử lý 8088/8086 các số âm được
biểu diễn dưới dạng số bù 2, nên phải dùng cờ SF để chỉ thị dấu của kết
quả.
SF = 1 (NG - NeGative), khi kết quả phép tốn là một số âm, SF = 0 (PL- PLus)
trong trường hợp ngược lại.
ZF (Zero Flag): Cờ rỗng.
ZF = 1 (ZR - ZeRo) khi kết quả phép tốn = 0, ZF = 0 (NZ-Non Zero) trong trường
hợp ngược lại.
OF (Overflow Flag): Cờ tràn.
OF = 1 (OV-OVerflow) khi kết quả là số bù 2 vượt khuơn khổ biểu diễn
(tràn số học, hay nĩi cách khác: khi cộng hai số cùng dấu mà kết quả là một số trái
dấu thì OF = 1), OF = 0 (NV-Non oVerflow) trong trường hợp ngược lại (cờ này làm
việc với số cĩ dấu).
Cờ điều khiển
Cờ trạng thái phụ thuộc kết quả phép tốn, cịn với cờ điều khiển ta cĩ thể
thiết lập nhờ lệnh.
54
IF (Interrupt Flag): Cờ ngắt.
IF = 1 (EI-Enable Interrup), CPU cho phép ngắt, IF = 0 (DI-Disable
Interrup) CPU khơng cho phép ngắt (cấm) các loại ngắt che được (Maskable)..
TF (Trap Flag): Cờ bẫy.
TF = 1 CPU làm việc trong chế độ chạy từng lệnh, thường dùng để gỡ rối
chương trình (debug). Sau khi thực hiện xong mỗi lệnh, bộ vi xử lý sẽ phát ra một
lệnh ngắt (INT) để cĩ kiểm tra chương trình.
DF (Direction Flag): Cờ hướng.
Điều khiển hướng xử lý đối với thao tác chuỗi. DF = 1 (DN-DowN) thì các
lệnh vận chuyển dữ liệu hay xử lý chuỗi sẽ thao tác lùi từ phải đến trái (địa chỉ cao
đến địa chỉ thấp). DF=0 (UP) trong trường hợp ngược lại (thao tác các phần tử từ địa
chỉ thấp đến địa chỉ cao).
BIU
Hàng đợi: Là tập thanh ghi
Với 8086 hàng đợi lệnh là 6 byte,
8088 hàng đợi lệnh là 4 byte nên chứa được
tối đa là 4 lệnh. CPU chứa tập thanh ghi theo
kiểu LIFO.
Cơ chế:
Đọc lệnh (lấy lệnh)
Giải mã lệnh
Thực hiện
Thanh ghi IP: Thanh ghi con trỏ lệnh, trỏ vào lệnh tiếp theo chuẩn bị được
thực hiện nằm trong đoạn CS (CS: IP). Sau khi đọc 1 byte, IP tự động
tăng thêm 1. Như vậy thực tế thì cặp CS:IP mới là con trỏ lệnh vì nĩ chứa
địa chỉ đầy đủ của một lệnh trong bộ nhớ.
Thanh ghi đoạn:
CS (Code Segment): Thanh ghi đoạn mã, là thanh ghi địa chỉ
đoạn mã lệnh, chứa địa chỉ cơ sở (địa chỉ đoạn) của chương trình đang
thực hiện.
DS (Data Segment): Thanh ghi đoạn dữ liệu, là thanh ghi địa chỉ
đoạn dữ liệu, chứa địa chỉ đoạn của vùng dữ liệu mà chương trình đang
thực hiện sử dụng. Vùng này thường chứa các biến của chương trình.
55
SS (Stack Segment): Thanh ghi đoạn ngăn xếp, là thanh ghi địa
chỉ đoạn bộ nhớ ngăn xếp (stack) của chương trình đang chạy.
ES (Extra Segment): Thanh ghi đoạn dữ liệu phụ, là thanh ghi
địa chỉ đoạn dữ liệu bổ sung mà chương trình đang thực hiện sử dụng.
Vùng này cũng thường chứa các biến của chương trình.
Khơng gian địa chỉ
8088 cĩ 20 bit địa chỉ, trong khi đĩ các thanh ghi quản lý bộ nhớ là 16 bit.
Để xác định một ngăn nhớ cĩ địa chỉ 20 bit, nĩ dùng 2 thanh ghi 16 bit để xác định
địa chỉ.
Một thanh ghi lưu địa chỉ đoạn.
Một thanh ghi lưu địa chỉ lệch (offset)
Một địa chỉ yêu cầu trong một lệnh nào đĩ là địa chỉ logic cĩ dạng:
DS:SI
DS:DI
DS:XX
Địa vật lý (phải là số 20 bit) được xác định như sau:
Địa vật lý = địa chỉ đoạn*16 + địa
chỉ lệch
Ví dụ: DS = 4000h, SI = 3F4Dh
Địa chỉ logic của ngăn nhớ: 4000:3F4D
Địa chỉ vật lí của ngăn nhớ: DS * 16 + SI = 40000 + 3F4D = 43F4Dh
Tại một thời điểm CPU quản lý được 4 đoạn nhớ (DS, SS, CS, ES) , nĩ cĩ thể
đồng thời truy nhập 4 đoạn đĩ.
Bộ nhớ được chia thành nhiều đoạn. Mỗi đoạn cĩ kích thước tối đa là 64
KB. Vậy ta cĩ 16 đoạn tách rời và địa chỉ lệch thay đổi từ 0000 H đến FFFFh.
Nếu địa chỉ đoạn thay đổi từ 0000h đến FFFFh thì cĩ 64 Kđoạn. Khi đĩ các
đoạn bao trùm lên nhau. 2 đoạn kề nhau sẽ các nhau 16 Byte (Paragraph).
Khi khởi động máy (hoặc Reset) CS được nạp giá trị F000h, IP được nạp giá
trị FFF0h. Địa chỉ này chỉ đến chương trình khởi động trong ROM.
Địa chỉ vật lý = F000h*16 + FFF0h = F0000h + FFF0h = FFFF0h
56
4.4.2. Kiến trúc CPU intel 4bit
57
CHƢƠNG V: Ợ NHỚ MÁY TÍNH
Mục tiêu của chƣơng
Giúp sinh viên nắm rõ chức năng và phân biệt được các loại bộ nhớ khác
nhau được sử dụng trong máy tính. Hiểu được các thức quản lý và làm việc của
Cache, HDD, CROM.
Tĩm Tắt
Trình bày chi tiết về bộ nhớ trong gồm các loại RAM, ROM, bộ nhớ đệm
Cache và cơ chế quan lý Cache. Trình bày tổng quan về cách thức ghi đọc và lưu trữ
dữ liệu trên ổ cứng HDD và CDROM.
Giới thiệu một số phương pháp kiểm sốt và phục hồi lỗi truyền thơng trong
bộ nhớ sử dụng kỹ thuật mã hố.
5.1. Tổng quan
. . . Tìm hiểu các loại bộ nhớ
Chúng ta cần xem xét bộ nhớ ở 2 gĩc độ là logic (hoạt động) và vật lý (cấu
tạo). Trước hết chúng ta cần biết bộ nhớ là gì, chúng nằm ở đâu trong hệ thống và
hoạt động như thế nào. Sau đĩ chúng ta sẽ xem xét một số loại bộ nhớ và tốc độ,
hình dạng và các modul nhớ mà ta cĩ thể cài đặt.
Bộ nhớ (memmory) là khơng gian làm việc của bộ vi xử lý. Đĩ là nơi cất giữ
tạm thời các chương trình và dữ liệu đang được thao tác với bộ vi xử lý. Việc lưu trữ
bộ nhớ được xem tạm thời vì dữ liệu chỉ tồn tại trong thời gian máy đang hoạt động
và khơng bị khởi động lại. Trước khi khởi động lại hay tắt máy, dữ liệu đã thay đổi
cần được ghi vào các thiết bị lưu trữ lâu dài – storage – (thường là ổ đĩa cứng) để sau
này cĩ thể nạp lại vào bộ nhớ.
Nhiều người mới làm quen với máy tính thường nhầm lẫn giữa bộ nhớ và
đĩa lưu trữ(storage disk) bởi vì cả hai cùng sử dụng đơn vị đo lường là byte,
Kilobyte, Megabyte, Gigabyte hoặc đơn vị cao hơn.
Một điểm quan trọng mà chúng ta cần ghi nhớ đĩ là: một file khi được nạp
vào trong bộ nhớ, nĩ chỉ là bản sao của file đĩ, cịn thực chất file đĩ vẫn tồn tại trong
ổ đĩa. Vì tính chất tạm thời của bộ nhớ cho nên file đã bị thay đổi cần được ghi lại
vào đĩa cứng trước khi tắt máy, vì khi tắt máy dữ liệu trong bộ nhớ sẽ bị xố.
Bộ nhớ lưu trữ các chương trình đang chạy và dữ liệu của chúng sử dụng.
Các chip nhớ cĩ lúc được gọi là lưu trữ khơng ổn định (volatile storage) bởi vì khi
tắt máy hoặc cĩ sự cố về nguồn điện, lưu trữ trong RAM sẽ bị mất. Vì bản chất bất
ổn định như vậy cho nên nhiều người dùng cĩ thĩi quen ghi lại thường xuyên (một
số chương trình ứng dụng cĩ thể ghi một cách tự động theo thời gian đã định).
58
Các đặc trưng của bộ nhớ
Ví trí:
Bên trong CPU: Tập các thanh ghi (register), cache
Bộ nhớ trong: Bộ nhớ chính (Main memmory – RAM, ROM)
Bộ nhớ ngồi: Các thiết bị nhớ, RAID (HDD, CD-Rom, …)
Dung lượng:
Độ dài từ nhớ (tính bằng bit) – Kích thước trên một đơn vị lưu trữ
Số lượng từ nhớ - Dung lượng bộ nhớ
Đơn vị truyền:
Từ nhớ - Truyền tuần tự từng Word
Khối nhớ - Truyền một khối gồn n Word
Phương pháp truy nhập:
Truy nhập tuần tự (băng từ) – Để đến được điểm n đầu từ phải duyệt qua
n-1 vị trí trước.
Truy nhập trực tiếp (các loại đĩa) – Đầu từ di chuyển trực tiếp đến vị trí
cần đọc.
Truy nhập ngẫu nhiên (bộ nhớ bán dẫn) – ơ nhớ cần đọc sẻ được giả mã
để lấy thơng tin ngay lập tức.
Truy nhập liên kết (cache) – Truy cập thơng qua ban sao của ơ nhớ cần
đọc
Hiệu năng:
Thời gian truy nhập
Chu kỳ truy xuất bộ nhớ
Tốc độ truyền
Kiểu bộ nhớ vật lý:
Bộ nhớ bán dẫn – Lưu trữ bằng điện
Bộ nhớ từ - Lưu trữ dùng từ tính
Bộ nhớ quang – Lưu trữ sử dụng cơng nghệ Laze
Các đặc tính vật lý:
59
Khả biến/khơng khả biến
Xố được/khơng xố được
. . . Mơ hình phân cấp bộ nhớ
Việc trao đổi dữ liệu giữa CPU và bộ vi xử lý và bộ nhớ chính là một thao
tác quan trọng, chiếm đa số trong các lệnh xử lý dữ liệu nên nĩ quyết định hiệu suất
của hệ thống vi xử lý nĩi chung và máy tính nĩi riêng. Bộ nhớ chính và bộ nhớ ngồi
thường cĩ tốc độ trao đổi dữ liệu chậm (chênh lệch) hơn so với tốc độ làm việc của
CPU (kể cả việc vận chuyển dữ liệu trong bộ vi xử lý). Để nâng cao tốc độ xử lý dữ
liệu chung của tồn hệ thống, người ta tìm cách nâng cao tốc độ trao đổi dữ liệu (kể
cả lệnh) giữa bộ vi xử lý và bộ nhớ ngồi phạm vi bộ vi xử lý. Dựa trên nguyên lý
cục bộ về khơng gian và thời gian mà người ta xây dựng hệ thống nhớ 5 cấp như sau:
Cấp 0 : Tập các thanh ghi nằm trong bộ vi xử lý. Thanh ghi là bộ nhớ kiểu
SRAM nên tác động nhanh và thơng tin ổn định. Đây là thành phần nhớ cĩ
tốc độ trao đổi dữ liệu nhanh nhất trong hệ thống vì nĩ gần ALU và CU. Tuy
nhiên nĩ cĩ dung lượng nhỏ.
Cấp 1 : Primary cache (cache sơ cấp) : Là bộ nhớ cĩ tốc độ trao đổi dữ liệu
rất nhanh (nhỏ hơn thanh ghi), cĩ dung lượng nhỏ và được đặt trong bộ vi xử
lý, nhưng cũng cĩ thể nằm ngồi bộ vi xử lý. Trong các bộ vi xử lý tiên tiến,
bộ nhớ cache thường được tách (chia) làm 2 với mục đích tránh xung đột
trong xử lý song song (đại diện là pipline) là Icache : dành cho lệnh và
Dcache : dành cho dữ liệu.
CPU Registers
100s Bytes
1s ns
Cache
K Bytes
4 ns
1-0.1 cents/bit
Main Memory
M Bytes
100ns- 300ns
$.0001-.00001 cents /bit
Disk
G Bytes, 10 ms
(10,000,000 ns)
10 - 10 cents/bit
Capacity
Access Time
Cost
Tape
infinite
sec-min
10
-8
Upper Level
-5 -6
Registers
Cache
Memory
Disk
Tape
Instr. Operands
Blocks
Pages
Files
Staging
Xfer Unit
prog./compiler
1-8 bytes
cache cntl
8-128 bytes
OS
512-4K bytes
user/operator
Mbytes
Lower Level
faster
Larger
60
Cấp 2 : Secondary cache (cache thứ cấp) : Cũng giống như Primary cache,
nhưng loại này nằm ngồi bộ vi xử lý. Nĩ chỉ cĩ khi cĩ Primary cache (ngược
lại, nĩ chính là Primary cache). Dung lượng của Secondary cache thường lớn
hơn Primary cache và nhỏ hơn bộ nhớ.
Cấp 3 : Main Memory (Bộ nhớ chính): Chứa chương trình và dữ liệu đang
hoạt động. Bộ nhớ này được bộ vi xử lý đánh địa chỉ trực tiếp và quản lý
thơng qua địa chỉ đĩ. Một phần của chương trình đang được thi hành cĩ thể
nằm trong cache (lệnh và dữ liệu) nhằm tăng tốc độ hoạt động của hệ thống.
Dung lương của bộ nhớ chính thường lớn hơn rất nhiều lần dung lượng bộ
nhớ cache. Như đã biết, trong các hệ thống máy tính hiện đại ngày nay thì bộ
nhớ chính thường là DRAM.
Câp 4 : Secondary memory (Bộ nhớ thứ cấp – bộ nhớ ngồi): Bộ nhớ này cĩ
dung lượng rất lớn nhưng tốc độ trao đổi dữ liệu chậm. Bộ nhớ này để lưu trữ
chương trình và dữ liệu một cách lâu dài, cho nhiều người sử dụng (ghi/đọc,
mất nguồn điện vẫn cịn thơng tin). Đại diện cho các bộ nhớ loại này đĩ chính
là các ổ đĩa cứng, mềm CD ROM, CD – WOM, CD WR, băng từ, …
. . ộ nhớ bán d n
. . . ộ nhớ ROM
Ðây là loại bộ nhớ dùng trong các hãng sãn xuất là chủ yếu. Nĩ cĩ đặc tính
là thơng tin lưu trữ trong ROM khơng thể xố được và khơng sửa được, thơng tin sẽ
được lưu trữ mãi mãi. Nhưng ngược lại ROM cĩ bất lợi là một khi đã cài đặt thơng
tin vào rồi thì ROM sẽ khơng cịn tính đa dụng. Ví dụ điển hình là các con "chip"
trên motherboard hay là BIOS ROM để vận hành khi máy tính vừa khởi động.
61
Các cơng nghệ ROM:
- EPROM:
Đối với EPROM, dữ liệu cĩ thể ghi vào bằng điện và cĩ thể xĩa được.
EPROM sử dụng một transistor cĩ cấu trúc FAMOST (Floating gate avalanche
injection MOS transistor). Đối với transistor loại này, cấu tạo cũng giống như dạng
FET thơng thường nhưng trong cực gate tồn tại thêm một cực, gọi là cực nổi
(floating gate). Nếu cực nổi khơng cĩ điện tích thì transistor này hoạt động như một
FET thơng thường, nghĩa là nếu cực Gate cĩ điện áp dương thì FET dẫn, cực drain
nối với cực source cực drain cĩ mức logic 1. Nếu cực nổi cĩ chứa điện tích thì nĩ sẽ
tạo ra trường điện từ đủ sức ngăn chặn khơng cho FET dẫn cực drain cĩ mức logic 0.
Quá trình nạp điện tử vào cửa nổi được thực hiện bằng các xung điện cĩ độ
rộng khoảng 50 ms và biên độ 20V đặt vào cực gate và cực drain. Điện tử được lưu
trữ tại vùng cửa nổi khi xung điện tắt (thời gian lưu trữ ít nhất là 10 năm). Để xĩa dữ
liệu trên EPROM, ta phải chiếu ánh sáng tử ngoại vào chip nhớ. Các điện tử sẽ hấp
thu năng lượng đủ để cĩ thể vượt ra khỏi cực nổi làm cho cực nổi khơng chứa điện
tử tồn bộ EPROM chứa giá trị 1. Do đĩ, trên các chip EPROM sẽ cĩ một cửa số
bằng thạch anh cho phép ánh sáng tử ngoại đi qua.
- EEPROM
Do việc sử dụng cửa sổ thạch anh khơng tiện lợi nên những năm gần đây đã
xuất hiện them chip ROM cĩ thể xĩa bằng điện. Cấu tạo của EEPROM cũng giống
như EPROM nhưng lúc này cĩ thêm một lớp màng mỏng oxide giữa vùng cực nổi và
cực drain cho phép các điện tử di chuyển từ vùng cực nổi sang cực drain khi đặt một
điện áp âm. Như vậy, quá trình lập trình cho EEPROM tương tự như EPROM trong
khi đĩ để xĩa dữ liệu thì chỉ cẩn đặt một điện áp -20V vào cực gate và cực drain vĩi
thời gian thích hợp (vì nếu thời gian quá dài thì các điện tử sẽ di chuyển thêm sang
cực drain làm cho cực nổi sẽ cĩ điện tích dương FET sẽ khơng hoạt động như bình
thường).
5.2. . ộ nhớ R M
RAM là thế hệ kế tiếp của ROM, cả RAM và ROM đều là bộ nhớ truy xuất
ngẫu nhiên, tức là dữ liệu được truy xuất khơng cần theo thứ tự. Tuy nhiên ROM
chạy chậm hơn RAM rất nhiều. Thơng thường ROM cần trên 50ns để xử lý dữ liệu
trong khi đĩ RAM cần dưới 10ns.
a) DRAM
Cấu tạo của DR M
Địa chỉ xác định ơ nhớ chia thành 2 phần: địa chỉ hàng và cột. Hai địa chỉ này
được đưa lần lượt vào bộ đệm. Quá trình dồn kênh địa chỉ điều khiển bằng các tín
62
hiệu RAS (Row Access Strobe) và CAS (Column Access Strobe). Bộ điều khiển nhớ
của CPU phải thực hiện 3 cơng việc sau: chia địa chỉ từ CPU thành các địa chỉ hàng
và cột; tích cực các chân RAS , CAS và WE một cách chính xác; truyền và nhận các
dữ liệu đọc, ghi.
Hình 31: Sơ đồ khối của DRAM
Một ơ nhớ của DRAM cĩ thể biểu diễn như Hình 32:
Hình 32: Cấu trúc 1 ơ nhớ của DRAM
Làm tƣơi DR M
Điện tích trên tụ điện bị giảm theo thời gian do chúng phĩng qua FET và lớp
điện mơi oxide làm cho dữ liệu cĩ thể bị mất. Do đĩ, tụ điện phải được nạp lại một
cách tuần hồn (refresh), thơng thường khoảng từ 1 ÷ 16 ms tùy theo loại RAM.
Cĩ 3 phương pháp refresh:
Chỉ tác động R S:
Tạo chu kỳ đọc giả (dummy read) để làm tươi ơ nhớ. Trong chu kỳ giả này,
tín hiệu RAS tích cực và địa chỉ hàng được đưa vào DRAM nhưng CAS bị cấm nên
khơng thể truyền dữ liệu ra ngồi được. Để làm tươi tồn bộ bộ nhớ thì tất cả các địa
chỉ phải được cấp lần lượt. Nhược điểm của phương pháp này là cần phải dùng mạch
63
logic hay một chương trình để làm tươi. Trong máy tính, điều này thực hiện bằng
kênh 0 của DMAC 8237, tác động định kỳ bằng bộ đếm 1 của PIT 8253.
Tác động C S trƣớc R S:
DRAM cĩ một mạch logic làm tươi của riêng nĩ với một bộ đếm địa chỉ.
Tín hiệu CAS sẽ tích cực trong một khoảng thời gian trước khi RAS tích cực. Địa
chỉ làm tươi được phát ra bên trong bằng bộ đếm địa chỉ mà khơng cần mạch logic
bên ngồi. Sau mỗi chu kỳ làm tươi, bộ đếm địa chỉ sẽ tự động tăng lên 1 để chỉ địa
chỉ kế tiếp.
Ẩn:
Chu kỳ làm tươi được chứa sau chu kỳ đọc bộ nhớ. Tín hiệu CAS giữ
nguyên mức thấp trong khi chỉ cĩ RAS lên mức cao. Ở đây, bộ đếm địa chỉ cũng tự
phát ra địa chỉ làm tươi.Việc đọc dữ liệu trong chu kỳ đọc cũng cĩ thể thực hiện
ngay cả khi đang thực hiện chu kỳ làm tươi. Phương pháp này sẽ tiết kiệm được thời
gian do thời gian làm tươi thường ngắn hơn so với thời gian đọc.
b) SRAM
Đối với SRAM, nội dung ơ nhớ vẫn giữ nguyên khi chưa mất nguồn cung
cấp mà khơng cần phải tốn thời gian làm tươi ơ nhớ. Do điện áp chênh lệch lớn nên
thời gian xử lý khuếch đại sẽ nhỏ hơn trong DRAM (thời gian truy xuất của DRAM
là khoảng 1ns trong khi của DRAM khoảng 40ns). Từ đĩ, SRAM khơng thực hiện
phân kênh địa chỉ hàng và cột (điều này sẽ làm giảm thời gian truy xuất). Sau khi dữ
liệu ổn định, bộ giải mã cột chọn cột phù hợp và đưa dữ liệu đến bộ đệm ngõ ra.
Các khác biệt của SRAM so với DRAM:
o Tốc độ của SRAM lớn hơn DRAM do khơng phải tốn thời gian refresh..
o Chế tạo SRAM tốn kém hơn DRAM nên thơng thường sử dụng DRAM
để hạ giá thành sản phẩm.
5.2.3. Một số loại R M
- FPM - DRAM (Fast Page Mode DRAM)
DRAM chuẩn được truy cập qua một kỹ thuật được gọi là kỹ thuật phân
trang (paging). Việc truy cập thơng thường bằng cách chọn địa chỉ hàng và địa chỉ
cột mất rất nhiều thời gian (giải mã hai bước). Phân trang cho phép truy nhập tất cả
dữ liệu trong một hàng nhanh hơn bằng cách giữ nguyên địa chỉ các hàng và chỉ thay
đổi giá trị cột. Bộ nhớ sử dụng kỹ thuật này gọi là bộ nhớ đánh số trang Page mode
hay Fast page Mode (FPM). Ngồi ra cịn một số cách gọi khác là: Column hay
Nibble Mode Memory.
64
- EDO - DRAM (Extended Data Out DRAM)
Một loại bộ nhớ khác gọi là EDO RAM được dùng trong các máy Pentium
từ năm 1995. EDO là bộ nhớ kiểu FPM đã được sửa lỗi hay cịn được gọi là Hyper
Page Mode. Hãng Micron Technology đã phát minh ra và lấy bằng sáng chế EDO
RAM. Bộ nhớ EDO gồm những Chip được sản xuất đặc biệt cho phép chồng các lần
truy nhập liên tiếp. Cái tên Extended Data Out xuất phát từ thực tế là khơng giống
như FPM, các trình điều khiển dữ liệu ra (data output driver) trên chip khơng bị tắt
khi mạch điều khiển bộ nhớ xố địa chỉ cột để bắt đầu chu kỳ tiếp theo. Điều này cho
phép chu kỳ tiếp theo chồng lên chu kỳ trước và tiết kiệm thời gian được khoảng
10ns một chu kỳ.
Để sử dụng bộ nhớ EDO, chipset của mainboard phải hỗ trợ bộ nhớ đĩ. Hầu
hết các mainboard về sau kể từ loại Intel 430 FX (Trion) cơng bố năm 1995 đều hỗ
trợ EDO RAM. Do chi phí cho chip bộ nhớ EDO tương đương chip chuẩn và các
mainboard Intel đều hỗ trợ EDO nên thị trường máy tính tập trung vào bộ nhớ EDO.
Rất lý tưởng khi sử dụng EDO RAM cho các máy cĩ tốc độ bus dưới 66
MHz, tức là các máy trên thị trường trước năm 1998. Từ năm 1998, thị phần của
EDO RAM đã giảm do bộ nhớ chính nhanh hơn và mới hơn là SDRAM
(Synchronuos DRAM) đã trở thành bộ nhớ chuẩn của các máy PC mới.
- BDEO-DRAM (Burst Extended Data Out DRAM)
Là thế hệ sau của EDO DRAM, dùng kỹ thuật đường ống (pipeline) để rút
ngắn thời gian dị địa chỉ.
- SDRAM (Synchronous DRAM)
Ðây là một loại RAM cĩ nguyên lý chế tạo khác hẳn với các loại RAM
trước. Đồng bộ (synchronous) là một khái niệm rất quan trọng trong lĩnh vực số.
RAM hoạt động do một bộ điều khiển xung nhịp (clock memory), dữ liệu sẽ được
truy xuất hay cập nhật mỗi khi clock chuyển từ logic 0 sang 1, đồng bộ cĩ nghĩa là
ngay lúc clock nhảy từ logic 0 sang 1 chứ khơng hẳn là chuyển sang logic 1 hồn
tồn (tác động bằng cạnh xung). Do kỹ thuật này, SDRAM và các thế hệ sau cĩ tốc
độ cao hơn hẳn các loại DRAM trước, đạt tốc độ 66, 100, 133 MHz.
- DDR SDRAM (Double Data Rate SDRAM)
Ðây là loại bộ nhớ cải tiến từ SDRAM. Nĩ nhân đơi tốc độ truy cập của
SDRAM bằng cách dùng cả hai quá trình đồng bộ khi clock chuyển từ logic 0 sang 1
và từ logic 1 sang 0 (dùng cả cạnh âm và cạnh dương). Loại RAM này được CPU
Intel và AMD hỗ trợ, tốc độ vào khoảng 266 MHz. (DDR-SDRAM đã ra đời trong
năm 2000)
65
- DRDRAM (Direct Rambus DRAM)
Hệ thống Rambus (tên hãng chế tạo) cĩ nguyên lý và cấu trúc chế tạo hồn
tồn khác loại SDRAM truyền thống. Bộ nhớ sẽ được vận hành bởi một hệ thống
phụ gọi là kênh truyền Rambus trực tiếp (direct Rambus channel) cĩ độ rộng bus 16
bit và một xung clock 400MHz (cĩ thể lên tới 800MHz). Theo lý thuyết thì cấu trúc
mới nầy sẽ cĩ thể trao đổi dữ liệu với tốc độ 400MHz x 16 bit = 400MHz x 2 bytes =
800 MBps. Hệ thống Rambus DRAM cần một chip serial presence detect (SPD) để
trao đổi với motherboard.
Ta thấy kỹ thuật mới nầy dùng giao tiếp 16 bit, khác hẳn với cách chế tạo
truyền thống là dùng 64 bit cho bộ nhớ nên kỹ thuật Rambus cho ra đời loại chân
RIMM (Rambus Inline Memory Module), khác so với bộ nhớ truyền thống. Loại
RAM này chỉ được hỗ trợ bởi CPU Intel Pentum IV, tốc độ vào khoảng 400 – 800
MHz
- SLDRAM (Synchronous - Link DRAM)
Là thế hệ sau của DRDRAM, thay vì dùng kênh Rambus trực tiếp 16 bit và
tốc độ 400MHz, SLDRAM dùng bus 64 bit chạy với tốc độ 200MHz. Theo lý thuyết
thì hệ thống mới cĩ thể đạt được tốc độ 200MHz x 64 bit = 200MHz x 8 bytes =
1600 MBps, tức là gấp đơi DRDRAM. Ðiều thuận tiện là là SLDRAM được phát
triển bởi một nhĩm 20 cơng ty hàng đầu về vi tính cho nên nĩ rất da dụng và phù
hợp nhiều hệ thống khác nhau.
- VRAM (Video RAM)
Khác với bộ nhớ trong hệ thống, do nhu cầu về đồ hoạ ngày càng cao, các
hãng chế tạo card đồ họa đã chế tạo VRAM riêng cho video card của họ mà khơng
cần dùng bộ nhớ của hệ thống chính. VRAM chạy nhanh hơn vì ứng dụng kỹ thuật
Dual Port nhưng đồng thời cũng đắt hơn rất nhiều.
- SGRAM (Synchronous Graphic RAM)
Là sản phẩm cải tiến của VRAM, nĩ sẽ đọc và viết từng block thay vì từng
mảng nhỏ.
. .4. Thiết kế module nhớ
Sơ đồ cơ bản của chip nhớ:
66
Hình 33: Các thành phần giao tiếp của một chip nhớ cơ bản
Các tín hiệu của chip nhớ
o Các đường địa chỉ: A0…An-1 để xác định 2n ngăn nhớ.
o Các đường dữ liệu: D0…Dm-1 độ dài từ nhớ (m bit) => dung lượng
chip nhớ = 2n x m bit
o Các tín hiệu điều khiển
Tín hiệu chọn chip hoạt động: CS (Chip Select)
Tín hiệu điều khiển đọc hoặc ghi (WE: Write Enable; OE:
Output Enable)
Thường các tín hiệu điều khiển tích cực với mức 0
Thiết kế module nhớ bán dẫn
o Cho chip nhớ 2n x m bit
o Yêu cầu sử dụng chip nhớ trên thiết kế module nhớ dung lượng là bội
kích thước chip nhớ trên.
Giải quyết vấn đề
o Cĩ hai cách:
Thiết kế để tăng độ dài từ nhớ, số ngăn nhớ khơng thay đổi.
Thiết kế để tăng số lượng ngăn nhớ, độ dài từ nhớ khơng thay
đổi.
- Thiết kế tăng số lƣ ng từ nhớ
Cách thiết kế này nhằm tăng kích thước của 1 ơ nhớ, nhằm làm tăng dung
lượng trong một lần truy xuất bộ nhớ. Cũng giống như ta cĩ 100 lơ đất, mỗi lơ rộng
100m
2, bây giờ ta thiết kế để vẫn 100 lơ đĩ nhưng mỗi lơ cĩ kích thước là 200m2. Rõ
dàng ta thấy vì vẫn là 100 lơ nên số địa chỉ cho mỗi lơ đất vẫn khơng đổi (n khơng
đổi) chỉ cĩ kích thước của mơi lơ đất (mỗi ơ nhớ) là thay đổi.
o Giả thiết: Cho các chip nhớ cĩ dung lượng 2n x m bit. (n là số đường
địa chỉ, m là số bít trong một ơ nhớ)
o Yêu cầu: Thiết kế module nhớ cĩ kích thước: 2n x (k.m) bit
67
Giải quyết:
Để thiết kế được yêu cầu ta xác định hai thơng số n (số đường địa chỉ)và
k(số chip nhớ cần để ghép vào module thiết kế.
Ví dụ:
Cho các chip nhớ SDRAM dung lượng 4K x 4 bit. Hãy thiết kế module nhớ
cĩ kích thước 4K x 8 bit
Giải:
Dung lượng chip nhớ 4k x 4 bit = 212k x 4 bit, => số đường địa chỉ n = 12, số
đường dữ liệu m=4.
Nhận thấy với yêu cầu của đề bài thì số đường địa chỉ là 12 đường khơng đổi
(số ngăn nhớ khơng thay đổi), số đường dữ liệu là 8 (tức kích thước một ơ nhớ đang
từ 4 bit tăng lên thành 8bit), vậy số chip sử dụng để thiết kế là 2(k=2).
Mạch thiết kế:
- Thiết kế tăng số lƣ ng ngăn nhớ
Cách này làm tăng số lượng ơ nhớ mà khơng thay đổi kích thước của một ơ
nhớ, ví dụ ta tăng lên 200 lơ đất nhưng mỗi ơ vẫn là 100m2.
o Giả thiết: Cho các chip nhớ cĩ dung lượng 2n x m bit.
o Yêu cầu: Thiết kế module nhớ cĩ kích thước: 2k.2n x m bit
Giải quyết:
Để thiết kế được ta xác định hai thơng số n+k (số đường địa chỉ mới để mã
hĩa đủ số ơ nhớ cần thiết kế) và 2k (số chip nhớ cần để ghép vào module thiết kế).
68
Ví dụ :
Cho các chip nhớ SDRAM dung lượng 4K x 8 bit. Hãy thiết kế module nhớ
cĩ kích thước 8K x 8 bit.
Giải:
Nhận thấy rằng đề yêu cầu tăng số lượng ơ nhớ lên 2 lần tức từ 4K lên 8K,
cịn kích thước một ơ nhớ vân là 8 bit.
Dung lượng 4k x 8bit = 212k x 8 bit, => số đường địa chỉ là n =12 và số
đường dữ liệu m=8.
Yêu cầu mới là 8k x 8bit = 213k x 8bit = 2 x 212k x 8bit = 2 chíp nhớ 4kx8bit.
Mạch thiết kế:
. . . Phát hiện lỗi và sửa lỗi trong bộ nhớ
Nguyên tắc chung: Trong quá trình truyền dữ liệu cĩ thể gặp sự thay đổi
các bit thơng tin do nhiễu hoặc do sai hỏng của thiết bị hay module vào ra. Vì vậy,
thực tế đặt ra là phải làm sao phát hiện được lỗi và cĩ thể sửa sai được. Một trong
phương pháp phát hiện lỗi (EDC: Error Dectecting Code) và sửa lỗi (ECC: Error
Correcting Code) là: Giả sử cần kiểm tra m bit thì người ta ghép thêm k bit kiểm tra
được mã hố theo cách nào đĩ rồi truyền từ ghép m+k bit (k bit được truyền khơng
mang thơng tin nên gọi là bit dư thừa) Trong đĩ m là số bit cần ghi vào bộ nhớ và k
bit là số bit cần tạo ra kiểm tra lỗi trong m bit.
Khi đọc dữ liệu ra cĩ khả năng sau:
o Khơng phát hiện dữ liệu cĩ lỗi.
69
o Phát hiện thấy dữ liệu lỗi và cĩ thể hiệu chỉnh dữ liệu lỗi thành
đúng.
o Phát hiện thấy lỗi nhưng khơng cĩ khả năng chỉ ra lỗi vì thế phát ra
tín hiệu báo lỗi.
Sơ đồ phát hiện lỗi và sửa lỗi:
Ví dụ : Phát hiện lỗi với bit chẵn lẻ (Party)
Mã EDC đơn giản là bit chẵn lẻ được gắn thêm vào các bit dữ liệu. Bit chẵn
lẻ =1: nếu số bit 1 trong xâu là lẻ. Hoặc sử dụng bit chẵn lẻ =0: nếu số bit 1 là chẵn
Ưu điểm: đơn giản và số bit dư thừa ít.
Nhược điểm: khơng định vị được lỗi, hoặc nếu cĩ sự thay đổi cả hai bit
hoặc 1 hoặc 0 thì khơng phát hiện được. Khắc phục nhược điểm trên xây
dựng mã EDC cho từng khối
Giả thiết một khung truyền một ký tự ASCII 7 bit cĩ nơi dung như sau:
1 0 0 1 1 0 1
Khi đĩ sử dụng thêm một bit party đếm số bit 1 trong khung là:
1 0 0 1 1 0 1 1
Ví dụ : Phát hiện lỗi bằng m dƣ thừa CRC (Cycle Redundary Check).
Nguyên tắc: Một xâu nhị phân bất kỳ cĩ thể coi là tập hợp các hệ số của đa
thức B(x) trong đĩ x là biến. Chọn đa thức G(x) là đa thức nào đĩ ta quy định trước
gọi đa thức sinh. Ta tiến hành chia module2 đa thức B(x) cho G(x) ta được thương
số Q(x) và phần dư R(x).
70
Đa thức sinh do tổ chức viễn thơng quốc tế quy định.
Khi đĩ ta cần truyền xâu B(x) + R(x) bit
Để kiểm tra lỗi ta cần chia giá trị nhận được cho đa thức sinh nếu phép
chia cĩ dư thì cĩ lỗi xuất hiện trong xâu
Giả thiết ta cần truyền một xâu 1101000111
o đa thức B(x) = x9 + x8 + x6 + x2 + x +1
o giả sử dùng đa thức sinh G(x)= x4 + x + 1 (chuỗi 10011)
o R(x) = B(x) mod G(x)
o Chia module 2 như sau:
Nếu dãy nhị phân đầu vào bên trên cĩ bít cực tả (đầu tiên bên trái) là 0,
khơng làm gì hết và dịch số chia sang phải một bít. Nếu dãy nhị phân đầu vào bên
trên cĩ bít cực tả là 1, lấy dãy số đầu vào trừ đi số chia (hay nĩi cách khác, lấy từng
bít ở dãy số đầu vào trên trừ đi từng bít ở số chia). Số chia sau đĩ dịch vị trí 1 bít
sang phải, quá trình cứ tiếp diễn như vậy đến khi số chia chạm tới tận cùng bên phải
của dãy số đầu vào.
B1:
1101000111
10011
0100100111
B2:
0100100111
10011
0000010111
B3:
0000010111
10011
0000000100
R(x) = 100
Khung cần truyền
1101000111 100
Ví dụ : M sửa lỗi Hamming Nguyên tắc: Một từ mã Hamming gồm m bit dữ liệu
và k bit kiểm tra chẵn lẻ. Mỗi bit được chọn vị trí thích hợp để phát hiện chính xác ví
trí để cĩ thể sửa lỗi được.
Ví dụ: chọn m=4 => k=3 (m=2n; k=n+1)
Dữ liều 4 bit ký hiệu là: I4 I3 I2 I1
3 Bít điều khiển ký hiệu là: C3 C2 C1
Ta cĩ thứ tự trong khung truyền đi như sau:
7 6 5 4 3 2 1
71
I4 I3 I2 C3 I1 C2 C1
Các bit này được mã hố theo quy luật sau (sử dụng phép logic XOR):
Giả thiết ta cần truyền 4 bit dữ liệu như sau:
I4 I3 I2 I1
1 1 0 1
C1 = I1 xor I2 xor I4 = 1 xor 0 xor 1 = 0
C2 = I1 xor I3 xor I4 = 1 xor 1 xor 1 = 1
C3 = I2 xor I3 xor I4 = 0 xor 1 xor 1 = 0
Vậy khung truyền đi cĩ dạng như sau:
7 6 5 4 3 2 1
I4 I3 I2 C3 I1 C2 C1
1 1 0 0 1 1 0
Giả sử bên nhận khi nhận được khung này bị lỗi một bít ở vị trí I2, I2 đang bằng 0 đã
bị lỗi thành 1 Khi đĩ khung dữ liệu nhận được bên nhận là
7 6 5 4 3 2 1
I4 I3 I2 C3 I1 C2 C1
1 1 1 0 1 1 0
Ta tách ra lấy:
- Phần dữ liệu: I4 I3 I2 I1 = 1111
- Phần điều khiển C3 C2 C1 = 010
Ta tính lại các bít điều khiển từ phần dữ liệu:
C1 = I1 xor I2 xor I4 = 1 xor 1 xor 1 = 1
C2 = I1 xor I3 xor I4 = 1 xor 1 xor 1 = 1
C3 = I2 xor I3 xor I4 = 1 xor 1 xor 1 = 1
72
Như vậy phần điều khiển bên nhận tính ra là 111 khác so với bên gửi thu
được là 010 chứng tỏ dữ liệu đã bị lỗi trên đường truyền, vấn đề tiếp theo là xác định
vị trí bị lỗi để bên nhận tự sửa lại mà khơng cần báo lại cho bên gửi.
Lấy 111 xor 010 = 101 đổi sang cơ số mười 101=5, đây chính là vị trí bít lỗi
trong khung truyền
7 6 5 4 3 2 1
I4 I3 I2 C3 I1 C2 C1
1 1 1 0 1 1 0
Vì bít 5 bị lỗi, giá trị của nĩ đang bằng 1 => giá trị đúng cịn lại chỉ là 0, vậy
khung truyền chính xác bên nhận tự sửa là:
7 6 5 4 3 2 1
I4 I3 I2 C3 I1 C2 C1
Nh n 1 1 1 0 1 1 0
Sửa 1 1 0 0 1 1 0
Nhận xét: Hồn tồn đúng với bản gốc bên gửi.
. . ộ nhớ đệm nhanh – Cache
5.3. . Tổng quan và ngh a của Cache
Bộ nhớ Cache là kiểu bộ nhớ tốc độ cao cĩ bên trong CPU để tăng tốc độ
truy cập cho dữ liệu và các lệnh được lưu trong bộ nhớ RAM.
Một máy tính sẽ hồn tồn vơ dụng nếu bạn khơng bắt bộ vi xử lý (CPU)
thực hiện một nhiệm vụ nào đĩ. Cơng việc sẽ được thực hiện thơng qua một chương
trình, chương trình này lại gồm rất nhiều các lệnh để ra lệnh cho CPU làm việc.
CPU lấy các chương trình từ bộ nhớ RAM. Tuy nhiên cĩ một vấn đề với bộ
nhớ RAM đĩ là khi nguồn nuơi của nĩ bị cắt thì các thành phần dữ liệu được lưu
trong RAM cũng sẽ bị mất – chính điều này nên một số người nĩi rằng bộ nhớ RAM
là một mơi trường dễ bay hơi . Các chương trình và dữ liệu như vậy phải được lưu
trên mơi trường khơng dễ bay hơi sau khi tắt máy tính (giống như các ổ đĩa cứng
hay các thiết bị quang như đĩa CD và DVD).
Khi kích đúp vào một biểu tượng trong Windows để chạy một chương trình
nào đĩ. Các chương trình thơng thường được lưu trên ổ đĩa cứng của máy tính, khi
được gọi nĩ sẽ được nạp vào bộ nhớ RAM sau đĩ từ bộ nhớ RAM, CPU nạp chương
trình thơng qua một mạch cĩ tên gọi là memory controller, thành phần này được đặt
73
bên trong chipset (north bridge chip- chíp cực bắc) trên các bộ vi xử lý Intel hoặc
bên trong CPU trên các bộ vi xử lý AMD.
Vấn đề là CPU khơng thể tìm nạp dữ liệu trực tiếp từ các ổ đĩa cứng vì tốc
độ truy suất dữ liệu của ổ đĩa cứng là quá thấp với nĩ, thậm chí nếu nếu bạn cĩ cả ổ
đĩa cứng với tốc độ truy suất lớn nhất. Hãy lấy một số ví dụ làm dẫn chứng cho điều
này, ổ cứng SATA-300 – một loại ổ đĩa cứng cĩ tốc độ nhanh nhất hiện đang được
cung cấp ngày nay đến phần lớn người dùng – cĩ tốc độ truyền tải theo lý thuyết là
300 MB/s. Một CPU chạy với tốc độ 2GHz với đường dữ liệu* 64-bit sẽ truyền tải
dữ liệu bên trong với tốc độ 16GB/s – như vậy là lớn gấp 50 lần.
Sự khác nhau trong tốc độ cũng bắt nguồn từ một thực tế đĩ là các ổ đĩa
cứng cịn bao gồm cả hệ thống cơ khí, các hệ thống cơ khí này bao giờ cũng chậm
hơn hệ thống điện tử thuần túy, các thành phần cơ khí phải chuyển động để dữ liệu
mới cĩ thể được đọc ra (điều này chậm hơn rất nhiều so với việc chuyển động của
điện tử). Hay nĩi cách khác, bộ nhớ RAM là 100% điện tử, cĩ nghĩa là nĩ sẽ nhanh
hơn tốc độ của ổ đĩa cứng và quang.
Tuy nhiên đây chính là vấn đề, thậm chí bộ nhớ RAM nhanh nhất cũng
khơng nhanh bằng CPU. Nếu bạn sử dụng các bộ nhớ DDR2-800, chúng truyền tải
dữ liệu ở tốc độ 6.400 MB/s – 12.800 MB/s nếu sử dụng chế độ hai kênh. Thậm chí
con số này cịn cĩ thể lên đến 16GB/s trong ví dụ trước, vì các CPU hiện nay cịn cĩ
thể tìm nạp dữ liệu từ L2 memory cache ở tốc độ 128- bit hay 256-bit, chúng ta đang
nĩi về 32 GB/s hoặc 64 GB/s nếu CPU làm việc bên trong với tốc độ 2GHz.
Giải pháp đã tìm thấy để giảm sự ảnh hưởng trong việc sử dụng bộ nhớ
RAM chậm hơn CPU là sử dụng một số lượng nhỏ các RAM tĩnh giữa CPU và bộ
nhớ RAM. Cơng nghệ này được gọi là bộ nhớ Cache và ngày nay cĩ một số lượng
nhỏ bộ nhớ tĩnh này được đặt bên trong CPU.
Bộ nhớ Cache copy hầu hết các dữ liệu đã được truy cập gần đây từ bộ nhớ
RAM vào bộ nhớ tĩnh và đốn dữ liệu gì CPU sẽ hỏi tiếp theo, tải chúng đến bộ nhớ
tĩnh trước khi CPU yêu cầu thực sự. Mục đích là làm cho CPU cĩ thể truy cập vào
bộ nhớ Cache thay vì truy cập trực tiếp vào bộ nhớ RAM, vì nĩ cĩ thể truy vấn dữ
liệu từ bộ nhớ Cache một cách tức thời hoặc cũng hầu như ngay lập tức thay vì phải
đợi khi truy cập vào dữ liệu được đặt trong RAM. CPU càng truy cập vào Cache nhớ
thay cho RAM nhiều hơn thì hệ thống sẽ càng hoạt động nhanh hơn. Cũng theo đĩ,
chúng ta sẽ sử dụng hốn đổi hai thuật ngữ dữ liệu và chỉ lệnh cho nhau vì
những gì được lưu bên trong mỗi địa chỉ nhớ khơng cĩ gì khác biệt đối với bộ nhớ.
Nguyên tắc:
Cache cĩ tốc độ truy xuất nhanh hơn rất nhiều bộ nhớ chính
74
Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ trao đổi thơng
tin giữa CPU và bộ nhớ chính.
Cache thường được đặt trong chip vi xử lý
Các thao tác chính của Cache:
CPU yêu cầu lấy nội dung của một ngăn nhớ bằng việc đưa ra một địa chỉ
xác định ơ nhớ.
CPU kiểm tra xem cĩ nội dung cần tìm trong Cache
o Nếu cĩ: CPU nhận dữ liệu từ bộ nhớ Cache
o Nếu khơng cĩ: Bộ điều khiển Cache đọc Block nhớ chứa dữ liệu CPU
cần vào Cache. Tiếp đĩ chuyển dữ liệu từ Cache đến CPU
Sơ đồ thao tác cache, bộ nhớ chính và CPU
75
Cấu trúc bộ nhớ Cache:
- Bộ nhớ cache được chia thành các line (C line), mỗi line chia thành 2 trường,
trường Tag và Block. Trường Tag lưu địa chỉ của ơ nhớ được chuyển vào
cache từ main memmory (RAM). Trường Block lưu dữ liệu của block chuyển
từ MainMem vào.
- Trên MainMem cũng được chia thành các block cĩ kích thước bằng kích
thước block trên Cache.
- Trong mỗi block lại được chia thành k word.
Vậy:
o Trên MainMem cĩ 2n word => số block = 2n/k
o Kích thước của cache = C * k word
. . . Các phƣơng pháp ánh xạ cache
a) Ánh xạ tr c tiếp
Nguyên tắc: Mỗi Block của bộ nhớ chính chỉ cĩ thể được nạp vào một vị trí
Line duy nhất của cache:
76
- B0 -> L0
- B1 -> L1
- ....
- Bm-1 -> Lm-1
- Bm -> L0
- Bm+1 -> L1
- ....
Tổng quát: B(j) chỉ cĩ thể được nạp vào L(j mod m) (với m là số Line của
cache).
Mơ tả:
Đặc điểm của ánh xạ tr c tiếp
Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trường:
Line 0
1
2
Block 0
1
2
3
4
5
6
7
8
77
o Trường Word gồm W bit xác định một từ nhớ trong Block hay Line:
2
w
= kích thước của Block hay Line
o Trường Line gồm L bit xác định một trong số các Line trong cache: 2L
= số Line trong cache = m
o Trường Tag gồm T bit: T = N - (W+L), 2T = số block của bộ nhớ chính
Khi CPU phát ra một địa chỉ A cĩ N bit với 3 trường trên, đầu tiên CPU sẽ
truy cập vào line (L mod m) trên cache, so sánh trường tag của line này với trường
tag trong địa chỉ A, nếu giống nhau (Cache hit) thì word thứ W trong line này sẽ
được tải vào CPU. Nếu khác nhau (Cache miss) tức trong cache chưa cĩ ơ nhớ cần
truy xuất, hệ thống sẽ truy xuất tới block thứ T (trường tag trong A) để tải block đĩ
vào cache.
Ƣu điểm:
o Bộ so sánh đơn giản vì chỉ thực hiện một lần với 2 tốn hạng vào
Nhƣ c điểm:
o Xác suất cache hit thấp và hiệu xuất của cache khơng cao vì mỗi một
block chỉ cĩ thể đưa vào một vị trí xác định trong khi các vị trí khác cĩ
thể đang trống.
Ví dụ:
Hãy xác định giá trị của Line(block), Tag và Word trong địa chỉ cĩ kích
thước 32 bit là 3FE9704Ah, biết rằng:
o Bộ nhớ sử dụng cơ chế ánh xạ trực tiếp.
o 1 word=2 byte:
o Kích thước cache 16K line
o Kích thước của 1 bock = 1 line = 16 word
Giải:
o 3FE9704Ah = 0011 1111 1110 1001 0111 0000 0100 1010 b
o Kích thước cache 16K line = 214 line => L=14 bit
o Kích thước 1 block = 16 word = 24 => k = 4 bit
o => Số bít cho trường Tag = 32 – 4 – 14 = 14
o Kết quả là:
Tag Line Word
78
Size 14 bit 14 bit 4 bit
Hệ nhị phân 0011 1111 1110 10 01 0111 0000 0100 1010
Hệ 4090 5892 10
b) Ánh xạ tồn phần
Để khắc phục nhược điểm của phương pháp trực tiếp là, cĩ thể rất nhiều
block tranh chấp 1 line trên cache trong khi các vị trí khác bỏ trống, thì phương
pháp này cho phép một block trên MainMem được tải vào một vị trí line bất kỳ cịn
trống trên cache.
Nguyên tắc:
Mỗi Block cĩ thể nạp vào bất kỳ Line nào của cache.
Địa chỉ của bộ nhớ chính bao gồm hai trường:
o Trường Word giống như trường hợp ở trên.
o Trường Tag dùng để xác định Block của bộ nhớ chính. Tag xác định
Block đang nằm ở Line đĩ
Mơ tả:
Đặc điểm của ánh xạ tịa phần
Khi CPU phát ra một địa chỉ A gồm N bit trong đĩ cĩ 2 trường tag + word.
Đầu tiên CPU sẽ duyệt từ line 0 cho đến hết, lần lượt kiêm tra trường Tag cua line
79
hiện thời nếu trùng với trường Tag của A tức cache hit thì ơ nhớ Word sẽ được tải
vào CPU. Trái lại khơng tìm thấy line nào cĩ tag trùng với Tag của A tức cache miss
thì CPU phải truy xuất vào block thứ Tag trên MainMem.
Ƣu điểm:
Hiệu xuất cache tối đa, cache hit cao.
Nhƣ c điểm:
Tốc độ tìm kiếm chậm, bộ so sánh phức tạp vì phải lấy tất các các tag của
cache để so sánh.
c) Ánh xạ liên kết thành bộ
Đây là phương pháp án dụng cả hai phương pháp trên, trên cache và
MainMem nhĩm các line hay block lại thành các SET, khi đĩ một block thuộc một
SET thứ S trên M
Các file đính kèm theo tài liệu này:
- BÀI GIẢNG CẤU TRÚC MÁY TÍNH 2.pdf