Tải bản đầy đủ (.pdf) (70 trang)

video nhaco gd hướng nghiệp 9 võ thị giang thư viện tư liệu giáo dục

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.79 MB, 70 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Ch</b>

<b>ươ</b>

<b>ng</b>

<b> 1 </b>



<b>Giới thiệu chung</b>



<b> 1.1</b> <b>Tổ chức và kiến trúc máy tính </b>
<b> 1.2</b> <b>Cấu trúc và chức năng của máy tính </b>
<b> 1.3</b> <b>Cách tiếp cận của giáo trình </b>


Môn học kiến trúc máy tính là mơn học khảo sát cấu trúc và chức năng của máy
tính. Mơn học này giúp học viên hiểu rõ bản chất và những đặc trưng của các hệ thống
máy tính hiện đại. Đây là một nhiệm vụ có tính thách đố do:


<b>Tính đa dạng của máy tính </b>thể hiện trong giá cả, kích thước, khả năng vận hành &
ứng dụng. Máy tính ngày nay gồm rất nhiều chủng loại --- từ các máy đơn chip giá chỉ
vài đô la cho đến các siêu máy tính giá hàng triệu đơ la --- với kích thước, hiệu suất và
ứng dụng thay đổi trên một phạm vi rộng lớn.


<b>Sự thay đổi nhanh chóng về cơng nghệ máy tính</b>, từ kỹ thuật mạch tích hợp dùng để


xây dựng nên các thành phần máy tính cho đến việc gia tăng sử dụng những khái niệm
về tổ chức song song trong việc kết hợp các thành phần đó.


Mặc dù có sự hiện diện của tính đa dạng và tốc độ thay đổi cơng nghệ trong lĩnh
vực máy tính, nhiều khái niệm cơ bản vẫn được áp dụng rộng khắp. Trong giáo trình
này, các yếu tố cơ bản về kiến trúc và tổ chức máy tính, mối quan hệ giữa chúng cũng
như nhiều bài toán gặp phải trong thiết kế máy tính hiện nay sẽ được thảo luận chi tiết.
Chương này sẽ trình bày cách tiếp cận mơ tả trong việc khảo sát hệ thống máy
tính, qua đó cung cấp cho học viên một bức tranh chung về tổ chức của giáo trình được
sử dụng cho mơn học kiến trúc máy tính.


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Hai thuật ngữ <b>tổ chức máy tính</b> và <b>kiến trúc máy tính</b> là hai thuật ngữ cần được


phân biệt khi mô tả một hệ thống máy tính.


<b>Kiến trúc máy tính</b> đề cập đến những thuộc tính hệ thống mà lập trình viêncó thể
quan sát được. Nói cách khác, đó là các thuộc tính có ảnh hưởng trực tiếp đến việc thực
thi một chương trình, ví dụ như tập chỉ thị của máy tính, số bit được sử dụng để biểu
diễn dữ liệu, cơ chế nhập/xuất, kỹ thuật định địa chỉ bộ nhớ, v.v...


<b>Tổ chức máy tính</b> quan tâm đến các đơn vịvận hành và sự kết nối giữa chúng nhằm


hiện thực hóa những đặc tả về kiến trúc, chẳng hạn như về tín hiệu điều khiển, giao
diện giữa máy tính với các thiết bị ngoại vi, kỹ thuật bộ nhớ được sử dụng, v.v...
Để minh họa rõ hơn về hai khái niệm này, chúng ta hãy xét đến phép toán nhân.
Việc máy tính có trang bị phép tốn này hay khơng là vấn đề thuộc về kiến trúc máy
tính. Trong khi đó, việc cài đặt phép tốn thơng qua một đơn vị nhân đặc biệt hay qua
cơ chế sử dụng lập đi lập lại đơn vị cộng của hệ thống là vấn đề thuộc về tổ chức máy
tính. Ở đây sự chọn lựa sử dụng cơ chế nào phụ thuộc vào các yếu tố như tần số sử dụng
phép toán, tốc độ tương đối của cả hai cách tiếp cận, giá cả và kích thước vật lý của
một đơn vị nhân đặc biệt.


Kể từ lúc ngành công nghiệp máy tính ra đời cho đến nay, sự phân biệt giữa kiến
trúc và tổ chức máy tính là một yếu tố quan trọng. Nhiều hãng sản xuất máy tính cho ra
đời cả một họ máy chỉ khác nhau về tổ chức cịn kiến trúc hồn tồn giống nhau. Kết
quả là các kiểu máy trong cùng một họ có giá cả và hiệu suất vận hành khác nhau. Hơn
thế nữa, một kiến trúc máy có thể tồn tại qua nhiều năm liền trong khi tổ chức máy dựa
trên đó sẽ thay đổi theo bước tiến của cơng nghệ. Ở đây chúng ta có thể lấy ví dụ
trường hợp kiến trúc máy IBM System/370. Kiến trúc này được giới thiệu lần đầu vào
năm 1970 với một số kiểu máy khác nhau. Khách hàng với nhu cầu khiêm tốn có thể
mua kiểu máy rẻ hơn, chậm hơn và nâng cấp lên kiểu máy đắt tiền hơn, nhanh hơn khi
nhu cầu sử dụng tăng lên. Điểm quan trọng trong việc nâng cấp này là khách hàng
không phải bỏ đi những phần mềm đang được sử dụng trên máy cũ của họ. Trải qua


năm tháng, hãng IBM đã cho ra đời thêm nhiều kiểu máy mới dựa trên công nghệ cải
tiến nhằm thay thế những kiểu máy lỗi thời, mang lại cho khách hàng lợi ích về tốc độ
và chi phí thấp, trong khi vẫn bảo toàn sự đầu tư của họ về phần mềm nhờ có sự dùng
chung một kiến trúc máy cho tất cả kiểu máy trong cùng một họ. Bằng cách tổ chức
định hướng người sử dụng như vậy, kiến trúc IBM System/370, qua một vài tinh chỉnh
không đáng kể, vẫn tồn tại cho đến ngày nay với vai trò ngọn cờ đầu trong dòng sản
phẩm IBM.


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

chức mà còn dẫn đến sự ra đời của những kiến trúc mạnh hơn, phong phú hơn. Nói
chung thì sự địi hỏi về tính tương thích từ thế hệ này sang thế hệ khác kém gay gắt hơn
đối với những chiếc máy nhỏ này. Do vậy, các quyết định thiết kế có tính kiến trúc và
thiết kế có tính tổ chức thường có sự tương tác lẫn nhau.


<b>1.2 Cấu trúc & chức năng của máy tính</b>



Máy tính là một hệ thống phức tạp với hàng triệu thành phần điện tử cơ sở. Chìa
khóa chính để mơ tả máy tính rõ ràng là sự nhận thức về bản chất phân cấp của hầu hết
các hệ thống phức tạp. Một hệ thống phân cấp là một tập hợp gồm các hệ thống con có
liên quan với nhau, trong đó mỗi hệ thống con lại có tính phân cấp về cấu trúc, cứ thế
tiếp tục cho đến cấp thấp nhất chứa những hệ thống con cơ sở.


Bản chất phân cấp của một hệ thống phức tạp giữ vai trị chính trong việc thiết kế
và mơ tả nó. Tại mỗi cấp, hệ thống bao gồm một tập hợp các thành phần con cùng với
những mối liên hệ giữa chúng. Ở đây có hai yếu tố được quan tâm đến là cấu trúc và
chức năng:


<b>Cấu trúc:</b> cách thức các thành phần hệ thống liên hệ với nhau.


<b>Chức năng:</b> hoạt động của mỗi thành phần riêng lẻ với tư cách là một phần của cấu
trúc.



<b>1.2.1 Chức năng </b>


Một cách tổng qt, một máy tính có thể thực hiện bốn chức năng cơ bản sau, như
được thể hiện trong hình 1.1:


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>Hình 1.1 Các chức năng cơ bản của máy tính </b>


<b>Lưu trữ dữ liệu:</b> máy tính cũng cần phải có khả năng lưu trữ dữ liệu. Ngay cả khi
máy tính đang xử lý dữ liệu, nó vẫn phải lưu trữ tạm thời tại mỗi thời điểm phần dữ liệu
đang được xử lý. Do vậy ít nhất chúng ta cần có chức năng lưu trữ ngắn hạn. Tuy nhiên,
chức năng lưu trữ dài hạn cũng có tầm quan trọng tương đương, vì dữ liệu cần được lưu
trữ trên máy cho những lần cập nhật và tìm kiếm kế tiếp.


<b>Di chuyển dữ liệu:</b> máy tính phải có khả năng di chuyển dữ liệu giữa nó và thế giới
bên ngoài. Khả năng này được thể hiện thông qua việc di chuyển dữ liệu giữa máy tính
với các thiết bị nối kết trực tiếp hay từ xa đến nó. Tùy thuộc vào kiểu kết nối và cự ly di
chuyển dữ liệu, chúng ta có tiến trình nhập xuất dữ liệu hay truyền dữ liệu:


<b>Tiến trình nhập xuất dữ liệu:</b> thực hiện di chuyển dữ liệu trong cự ly ngắn giữa máy
tính và thiết bị nối kết trực tiếp.


<b>Tiến trình truyền dữ liệu:</b> thực hiện di chuyển dữ liệu trong cự ly xa giữa máy tính
và thiết bị nối kết từ xa.


<b>Điều khiển: </b>bên trong hệ thống máy tính, đơn vị điều khiển có nhiệm vụ quản lý các


tài ngun máy tính và điều phối sự vận hành của các thành phần chức năng phù hợp
với yêu cầu nhận được từ người sử dụng.



Tương ứng với các chức năng tổng quát nói trên, có bốn loại hoạt động có thể xảy ra
gồm:


Máy tính được dùng như một thiết bị di chuyển dữ liệu, có nhiệm vụ đơn giản là
chuyển dữ liệu từ bộ phận ngoại vi hay đường liên lạc này sang bộ phận ngoại vi hay
đường liên lạc khác [Hình 1.2 (a)].


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Máy tính được dùng để lưu trữ dữ liệu, với dữ liệu được chuyển từ mơi trường ngồi
vào lưu trữ trong máy (quá trình đọc dữ liệu) và ngược lại (quá trình ghi dữ liệu) [Hình
1.2 (b)].


<b>Hình 1.2 (b) Máy tính – Thiết bị lưu trữ dữ liệu </b>


Máy tính được dùng để xử lý dữ liệu thông qua các thao tác trên dữ liệu lưu trữ [Hình
1.2 (c)] hoặc kết hợp giữa việc lưu trữ và liên lạc với mơi trường bên ngồi [Hình 1.2
(d)].


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>Hình 1.2 (d) Máy tính – Thiết bị xử lý/ trao đổi dữ liệu </b>
<b>với mơi trường ngồi </b>


<b>1.2.2 Cấu trúc </b>


Ở mức đơn giản nhất, máy tính có thể được xem như một thực thể tương tác theo một
cách thức nào đó với mơi trường bên ngồi. Một cách tổng quát, các mối quan hệ của
nó với mơi trường bên ngồi có thể phân loại thành các thiết bị ngoại vi hay đường liên
lạc.


Giáo trình này tập trung khảo sát cấu trúc nội tại của máy tính, như được thể hiện ở mức
tổng quát nhất trong hình 1.3. Với hình vẽ này, máy tính có bốn cấu trúc chính:



<b>Đơn vị xử lý trung tâm (CPU):</b> điều khiển hoạt động của máy tính và thực hiện các


chức năng xử lý dữ liệu. CPU thường được đề cập đến với tên gọi bộ xử lý.<b> </b>
<b>Bộ nhớ chính: </b>dùng để lưu trữ dữ liệu.


<b>Các thành phần nhập xuất:</b> dùng để di chuyển dữ liệu giữa máy tính và mơi trường


bên ngồi.


<b>Các thành phần nối kết hệ thống:</b> cung cấp cơ chế liên lạc giữa CPU, bộ nhớ chính


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b>Hình 1.3 Cấu trúc tổng quát của máy tính </b>
<b> </b>


Máy tính có thể có một hoặc nhiều thành phần nói trên, ví dụ như CPU. Trước đây đa
phần các máy tính chỉ có một CPU, nhưng gần đây có sự gia tăng sử dụng nhiều CPU
trong một hệ thống máy đơn. CPU luôn là đối tượng quan trọng cần được khảo sát vì
đây là thành phần phức tạp nhất của hệ thống. Hình 1.4 thể hiện cấu trúc của CPU với
các thành phần chính gồm:


<b>Đơn vị điều khiển:</b> điều khiển hoạt động của CPU và do đó hoạt động của máy tính.


<b>Đơn vị luận lý và số học (ALU): </b>thực hiện các chức năng xử lý dữ liệu của máy tính.


<b>Tập thanh ghi:</b> cung cấp nơi lưu trữ bên trong CPU.


<b>Thành phần nối kết nội CPU: </b>cơ chế cung cấp khả năng liên lạc giữa đơn vị điều


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

máy tính. Đó là khái niệm vi lập trình. Hình 1.5 mơ tả tổ chức bên trong một đơn vị điều
khiển với ba thành phần chính gồm:



<b>Bộ luận lý lập dãy </b>


<b>Bộ giải mã và tập các thanh ghi điều khiển </b>
<b>Bộ nhớ điều khiển </b>


Ứng với cách tổ chức vừa trình bày của máy tính, chúng ta có thể chia bài tốn khảo sát
máy tính thành bốn phần như sau:


<b>Phần 1: Tổng quan về kiến trúc máy tính </b>
<b>Phần 2: Hệ thống máy tính </b>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9></div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>Hình 1.5 Đơn vị điều khiển của CPU </b>


<b>1.3 Cách tiếp cận của giáo trình</b>



Trong giáo trình này chúng ta sẽ tìm hiểu hai phần đầu tiên của kiến trúc máy tính với
nội dung cụ thể như sau:


Phần 1: Tổng quan về kiến trúc máy tính
Phần 2: Hệ thống máy tính


Nội dung chi tiết của từng phần được liệt kê tiếp sau đây.


<b>Phần 1: Tổng quan về kiến trúc máy tính </b>


Chương1 giới thiệu chung về môn học và tổ chức giáo trình.


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>Phần 2: Hệ thống máy tính </b>



Chương3 khảo sát kỹ thuật đường truyền hệ thống, một trong những cách tiếp cận phổ
biến nhất đối với bài tốn liên kết các thành phần bên trong máy tính.


Chương4 giới thiệu về tính phân cấp bộ nhớ, sau đó tập trung vào những vấn đề thiết
kế liên quan đến bộ nhớ trong. Các chủ đề được thảo luận bao gồm bản chất và tổ chức
của bộ nhớ chính bán dẫn, thiết kế cache.


Chương5tìm hiểu về những tham số hiệu suất và thiết kế khác nhau có liên quan đến
bộ nhớ đĩa. Ngoài ra, các lược đồ RAID vốn đang trở nên phổ biến trên thị trường cũng
được trình bày trong chương này.


<b>chương </b>

<b>2</b>



<b>L</b>

<b>ịch sử máy tính</b>





2.1 Máy tính thế hệ thứ nhất (1945 – 1958)


2.2 Máy tính thế hệ thứ hai (1958 – 1964)


2.3 Máy tính thế hệ thứ ba (1964 – 1974)


2.4 Máy tính thế hệ thứ tư (1974 – hiện nay)


2.5 Bài tập và câu hỏi củng cố bài học


Máy tính thường được phân loại dựa trên công nghệ phần cứng cơ sở được sử dụng
trong quá trình chế tạo. Lịch sử phát triển máy tính có thể chia làm bốn giai đoạn như
sau:



</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>Giai đoạn 2:</b> từ 1958 đến 1964, với máy tính thế hệ thứ hai sử dụng cơng nghệ chất
bán dẫn.


<b>Giai đoạn 3:</b> từ 1964 đến 1974, với máy tính thế hệ thứ ba sử dụng cơng nghệ mạch


tích hợp.


<b>Giai đoạn 4:</b> từ 1974 đến nay, với máy tính thế hệ thứ tư sử dụng cơng nghệ mạch tích


hợp vơ cùng lớn/siêu lớn (VLSI/ULSI).


Các mục tiếp theo sẽ trình bày chi tiết về từng thế hệ máy tính cùng với cơng nghệ sử
dụng và đại diện tiêu biểu của thế hệ đó.


<b>2.1 MÁY TÍNH THẾ HỆ THỨ NHẤT (1945 – 1958)</b>



<b>Máy tính ENIAC </b>


Máy ENIAC (Electronic Numerical Integrator And Computer), do John Mauchly và
John Presper Eckert (đại học Pensylvania, Mỹ) thiết kế và chế tạo, là chiếc máy số hoá
điện tử đa năng đầu tiên trên thế giới.


<b> </b> <b>Nguoàn goác </b>


Dự án chế tạo máy ENIAC được bắt đầu vào năm 1943. Đây là một nỗ lực nhằm
đáp ứng yêu cầu thời chiến của BRL (Ballistics Research Laboratory – Phòng nghiên
cứu đạn đạo quân đội Mỹ) trong việc tính tốn chính xác và nhanh chóng các bảng số
liệu đạn đạo cho từng loại vũ khí mới.



<b> </b> <b>Số liệu kỹ thuật </b>


ENIAC là một chiếc máy khổng lồ với hơn 18000 bóng đèn chân khơng, nặng hơn
30 tấn, tiêu thụ một lượng điện năng vào khoảng 140kW và chiếm một diện tích xấp xỉ
1393 m2<sub>. Mặc dù vậy, nó làm việc nhanh hơn nhiều so với các loại máy tính điện cơ </sub>


cùng thời với khả năng thực hiện 5000 phép cộng trong một giây đồng hồ.


<b> </b> <b>Điểm khác biệt giữa ENIAC & các máy tính khác </b>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

ENIAC là một cơng việc vất vả vì phải thực hiện nối dây bằng tay qua việc đóng/mở
các công tắc cũng như cắm vào hoặc rút ra các dây cáp điện.


<b> </b> <b>Hoạt động thực tế </b>


Máy ENIAC bắt đầu hoạt động vào tháng 11/1945 với nhiệm vụ đầu tiên khơng
phải là tính tốn đạn đạo (vì chiến tranh thế giới lần thứ hai đã kết thúc) mà để thực
hiện các tính tốn phức tạp dùng trong việc xác định tính khả thi của bom H. Việc có
thể sử dụng máy vào mục đích khác với mục đích chế tạo ban đầu cho thấy tính đa năng
của ENIAC. Máy tiếp tục hoạt động dưới sự quản lý của BRL cho đến khi được tháo rời
ra vào năm 1955.


Với sự ra đời và thành công của máy ENIAC, năm 1946 được xem như năm mở
đầu cho kỷ nguyên máy tính điện tử, kết thúc sự nỗ lực nghiên cứu của các nhà khoa
học đã kéo dài trong nhiều năm liền trước đó.


<b>Máy tính von Neumann </b>


<b> </b> <b>Khái niệm chương trình được lưu trữ </b>



Như đã đề cập ở trên, việc lập trình trên máy ENIAC là một cơng việc rất tẻ nhạt
và tốn kém nhiều thời gian. Cơng việc này có lẻ sẽ đơn giản hơn nếu chương trình có
thể được biểu diễn dưới dạng thích hợp cho việc lưu trữ trong bộ nhớ cùng với dữ liệu
cần xử lý. Khi đó máy tính chỉ cần lấy chỉ thị bằng cách đọc từ bộ nhớ, ngồi ra chương
trình có thể được thiết lập hay thay đổi thông qua sự chỉnh sửa các giá trị lưu trong một
phần nào đó của bộ nhớ.


Ý tưởng này, được biết đến với tên gọi "khái niệm chương trình được lưu trữ", do
nhà toán học John von Neumann, một cố vấn của dự án ENIAC, đưa ra ngày 8/11/1945,
trong một bản đề xuất về một loại máy tính mới có tên gọi EDVAC (Electronic Discrete
Variable Computer). Máy tính này cho phép nhiều thuật tốn khác nhau có thể được
tiến hành trong máy tính mà khơng cần phải nối dây lại như máy ENIAC.


<b>Maùy IAS </b>


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>Một bộ nhớ chính</b> để lưu trữ dữ liệu và chương trình.


<b>Một đơn vị số học – luận ly</b>ù (ALU – Arithmetic and Logic Unit) có khả năng thao taùc


trên dữ liệu nhị phân.


<b>Một đơn vị điều khiển</b> có nhiệm vụ thơng dịch các chỉ thị trong bộ nhớ và làm cho


chúng được thực thi.


<b>Thiết bị nhập/xuất</b> được vận hành bởi đơn vị điều khiển.


<b>Hình 2.1 Cấu trúc của máy IAS </b>


Hầu hết các máy tính hiện nay đều có chung cấu trúc và chức năng tổng quát như


trên. Do vậy chúng cịn có tên gọi chung là các máy von Neumann.


Do vai trò quan trọng của máy IAS đối với ngành cơng nghiệp máy tính, tiếp theo
đây chúng ta sẽ tìm hiểu một cách ngắn gọn về hoạt động của nó.


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>Hình 2.2 Các dạng thức bộ nhớ của máy IAS </b>


Đơn vị điều khiển vận hành máy IAS bằng cách lấy các chỉ thị từ bộ nhớ và thực
thi lần lượt mỗi lần một chỉ thị. Để giải thích cách hoạt động này, chúng ta cần đến sơ
đồ cấu trúc chi tiết hơn như trong hình 2.3. Hình vẽ này cho thấy rằng cả đơn vị điều
khiển và ALU đều chứa các vị trí lưu trữ , được gọi là các <i>thanh ghi</i>, xác định như sau:


<b>Thanh ghi vùng đệm bộ nhớ (MBR):</b> chứa một word sẽ được lưu trữ trong bộ nhớ,


hay sẽ được dùng để nhận một word từ bộ nhớ.


<b>Thanh ghi địa chỉ bộ nhớ (MAR): </b>đặc tả địa chỉ trong bộ nhớ sẽ được ghi/đọc từ/vào


MBR.


<b>Thanh ghi chỉ thị (IR):</b> chứa mã thao tác (op code) 8 bit của chỉ thị được thực thi.


<b>Thanh ghi vùng đệm chỉ thị (IBR): </b>được tận dụng để lưu tạm thời chỉ thị bên phải


trong một word của bộ nhớ.


<b>Bộ đếm chương trình (PC):</b> chứa địa chỉ của cặp chỉ thị kế tiếp được lấy ra từ bộ nhớ.


<b>Bộ tích lũy (AC) và Bộ nhân –thương số (MQ): </b>được tận dụng để lưu tạm thời các



</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b>Hình 2.3 Cấu trúc mở rộng của máy tính IAS </b>
<b> </b>


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<b>Hình 2.4 Sơ đồ một phần hoạt động của máy IAS </b>
<b> </b>


Khi mã thao tác đã ở trong IR, <i>chu kỳ thực thi lệnh</i> được thực hiện. Mạch điều
khiển thông dịch mã thao tác và thực thi chỉ thị bằng cách gửi tín hiệu điều khiển thích
hợp khiến cho dữ liệu được di chuyển hay một thao tác được tiến hành bởi ALU.
Máy IAS có tất cả 21 chỉ thị được chia thành các nhóm sau:


<i>Truyền dữ liệu:</i> di chuyển dữ liệu giữa bộ nhớ và các thanh ghi ALU hoặc giữa hai
thanh ghi ALU.


<i>Rẽ nhánh khơng điều kiện: </i>thơng thường thì đơn vị điều khiển thực thi các chỉ thị theo
dãy đến từ bộ nhớ. Dãy chỉ thị này có thể được thay đổi bằng một chỉ thị rẽ nhánh. Việc
làm này giúp ích cho các thao tác lặp.


<i>Rẽ nhánh có điều kiện:</i> nhánh rẽ phụ thuộc vào một điều kiện, do đó cho phép đặt các
điểm quyết định.


<i>Số học:</i>các thao tác do ALU đảm nhận.


<i>Chỉnh sửa địa chỉ:</i> cho phép địa chỉ được tính tốn trong ALU và sau đó chèn vào
trong các chỉ thị lưu trong bộ nhớ. Việc làm này cho phép một chương trình có khả năng
định địa chỉ linh hoạt.


Hình 2.4 cũng chỉ ra nhiều ví dụ về thực thi chỉ thị bằng đơn vị điều khiển. Chúng
ta cần chú ý là mỗi thao tác đòi hỏi nhiều bước. Một số trong chúng rất tỉ mỉ, ví dụ như
thao tác nhân cần 39 thao tác con cho 39 vị trí bit, ngoại trừ bit dấu.





<b>2.2 MÁY TÍNH THẾ HỆ THỨ HAI (1958 – 1964)</b>



</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

Đèn bán dẫn là phát minh lớn của phịng thí nghiệm Bell Labs trong năm 1947. Nó
đã tạo ra một cuộc cách mạng điện tử trong những năm 50 của thế kỷ 20. Dù vậy, mãi
đến cuối những năm 50, các máy tính bán dẫn hóa hồn tồn mới bắt đầu xuất hiện trên
thị trường máy tính. Việc sử dụng đèn bán dẫn trong chế tạo máy tính đã xác định thế
hệ máy tính thứ hai, với đại diện tiêu biểu là máy PDP-1 của công ty DEC (Digital
Equipment Corporation) và IBM 7094 của IBM. DEC được thành lập vào năm 1957 và
cũng trong năm đó cho ra đời sản phẩm đầu tiên của mình là máy PDP-1 như đã đề cập
ở trên. Đây là chiếc máy mở đầu cho dịng máy tính mini của DEC, vốn rất phổ biến
trong các máy tính thế hệ thứ ba.


Hình 2.5 mơ tả một cấu hình với nhiều thiết bị ngoại vi của máy IBM 7094. Ở đây
có nhiều điểm khác biệt so với máy IAS mà chúng ta cần lưu ý. Điểm quan trọng nhất
trong số đó là việc sử dụng các <i>kênh dữ liệu</i>. Một kênh dữ liệu là một module nhập/xuất
độc lập có bộ xử lý và tập lệnh riêng. Trên một hệ thống máy tính với các thiết bị như
thế, CPU sẽ không thực thi các chỉ thị nhập/xuất chi tiết. Những chỉ thị đó được lưu
trong bộ nhớ chính và được thực thi bởi một bộ xử lý chuyên dụng trong chính kênh dữ
liệu. CPU chỉ khởi động một sự kiện truyền nhập/xuất bằng cách gửi tín hiệu điều khiển
đến kênh dữ liệu, ra lệnh cho nó thực thi một dãy các chỉ thị trong máy tính. Kênh dữ
liệu thực hiện nhiệm vụ của nó độc lập với CPU và chỉ cần gửi tín hiệu báo cho CPU
khi thao tác đã hoàn tất. Cách sắp xếp này làm giảm nhẹ công việc cho CPU rất nhiều.
Một đặc trưng khác nữa là <i>bộ đa công</i>, điểm kết thúc trung tâm cho các kênh dữ
liệu, CPU và bộ nhớ. Bộ đa công lập lịch các truy cập đến bộ nhớ từ CPU và các kênh
dữ liệu, cho phép những thiết bị này hoạt động độc lập với nhau.


<b>2.3 MÁY TÍNH THẾ HỆ THỨ BA (1964 – 1974)</b>




</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>Hình 2.5 Một cấu hình máy IBM 7094 </b>


Sự phát minh ra mạch tích hợp vào năm 1958 đã cách mạng hóa điện tử và bắt đầu
cho kỷ nguyên vi điện tử với nhiều thành tựu rực rỡ. Mạch tích hợp chính là yếu tố xác
định thế hệ thứ ba của máy tính. Trong mục tiếp sau đây chúng ta sẽ tìm hiểu một cách
ngắn gọn về cơng nghệ mạch tích hợp. Sau đó, hai thành viên quan trọng nhất trong các
máy tính thế hệ thứ ba, máy IBM System/360 và máy DEC PDP-8, sẽ được giới thiệu
cùng với các tính năng nổi bật của chúng.


<b>Vi điện tử </b>


Kể từ buổi ban đầu của điện tử số và công nghiệp máy tính, mọi người đã có một
khuynh hướng nhất quán và vững chắc trong việc thu nhỏ kích thước các mạch điện tử
số. Trước khi xem xét những lợi ích do khuynh hướng này mang lại, chúng ta cần tìm
hiểu đơi chút về bản chất của điện tử số.


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<b>Hình 2.6 Các phần tử cơ bản của một máy tính </b>


<b>Cổng</b> là một thiết bị cài đặt một hàm luận lý hay Boolean đơn giản, chẳng hạn như


NẾU A VÀ B LÀ ĐÚNG THÌ C LÀ ĐÚNG (cổng AND). Những thiết bị như thế được
gọi là cổng vì chúng điều khiển luồng dữ liệu gần giống với cách hoạt động của những
cổâng tại các kênh đào.


<b>Ô nhớ</b> là một thiết bị có thể lưu trữ một bit dữ liệu; tức là nó có thể ở một trong hai
trạng thái tại một thời điểm bất kỳ.


Bằng cách liên kết một lượng lớn những thiết bị cơ sở này, chúng ta có thể xây dựng
được một máy tính. Chúng ta có thể liên hệ điều này với bốn chức năng cơ bản của máy


tính như sau:


<b>Lưu trữ dữ liệu:</b> do ô nhớ cung cấp.


<b>Xử lý dữ liệu: </b>do cổng cung cấp.


<b>Di chuyển dữ liệu:</b> đường đi giữa các thành phần được sử dụng để di chuyển dữ liệu
từ ô nhớ này sang ô nhớ khác và từ ô nhớ qua cổng đến ô nhớ khác.


<b>Điều khiển:</b> đường đi giữa các thành phần có thể được sử dụng để mang chuyển tín


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

ơ nhớ sẽ lưu bit được nhập vào khi tín hiệu điều khiển ghi WRITE là BẬT và sẽ đặt bit
đó trên bộ xuất khi tín hiệu đọc READ là BẬT.


Do đó, một máy tính sẽ bao gồm các cổng, các ô nhớ, cũng như các thành phần
liên kết chúng. Cổng và ô nhớ lại được tạo nên từ những thành phần điện tử số đơn
giản.


Mặc dù công nghệ bán dẫn đã được giới thiệu trong các máy tính thế hệ thứ hai,
nhiều bài tốn vẫn cịn tồn tại. Các đèn bán dẫn được đặt riêng lẻ trong các gói và được
liên kết lại trên những bảng mạch in thông qua các dây rời rạc. Đây là một quá trình
phức tạp, tốn thời gian và dễ có lỗi.


Cơng nghệ mạch tích hợp khai thác sự kiện là những thành phần như thế (đèn bán
dẫn, điện trở, và chất dẫn điện) có thể làm hàng loạt từ một chất bán dẫn như silicon.
Hàng trăm, thậm chí hàng ngàn đèn bán dẫn có thể được tạo ra cùng một lúc trên một
vỉ silicon. Ngồi ra, những đèn bán dẫn này có thể kết nối với một q trình kim loại
hóa để tạo thành các mạch khác nhau. Hình vẽ 2.7 minh họa những khái niệm then chốt
trong một mạch tích hợp. Chúng ta có một vỉ silicon mỏng được chia thành một ma trận
các vùng con có kích thước độ vài milimet vuông. Một mẫu mạch đồng nhất sẽ được tạo


ra trên từng vùng con này và sau đó vỉ được cắt ra thành các <i>chip</i>. Mỗi chip có nhiều
cổng và một số điểm tiếp xúc nhập/xuất. Chip sẽ được đóng gói và gắn thêm chân để
có thể gắn vào các thiết bị khác. Một số gói chip này sẽ được nối kết lại trên một bảng
mạch in để sản xuất ra các mạch phức tạp hơn nữa.


</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

<b>Hình 2.7 Mối quan hệ giữa vỉ silicon, chip và cổng </b>


<b>Hình 2.8 Sự phát triển mật độ transistor trong chip </b>


</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

Giá chip gần như khơng thay đổi trong q trình phát triển nhanh chóng về độ trù mật
của các thành phần trên chip. Điều này có nghĩa là giá cả cho các mạch nhớ và luận lý
giảm một cách đáng kể.


Vì những thành phần luận lý và ơ nhớ được đặt gần nhau hơn trên các chip được đóng
gói dày đặc, đường đi điện tử sẽ ngắn hơn dẫn đến việc gia tăng tốc độ vận hành.


Máy tính sẽ trở nên nhỏ hơn, tiện lợi hơn để bố trí vào các loại mơi trường khác nhau.
Có sự giảm thiểu trong những yêu cầu về bộ nguồn và thiết bị làm mát hệ thống.
Sự liên kết trên mạch tích hợp đáng tin cậy hơn trên các nối kết hàn. Với nhiều mạch
trên mỗi chip, sẽ có ít sự nối kết liên chip hơn.


<b>Maùy IBM System/360 </b>


Máy IBM System/360 được IBM đưa ra vào năm 1964 là họ máy tính cơng nghiệp
đầu tiên được sản xuất một cách có kế hoạch. Khái niệm họ máy tính bao gồm các máy
tính tương thích nhau là một khái niệm mới và hết sức thành công. Các đặc điểm của
một họ máy như vậy gồm:


<b>Tập chỉ thị đồng nhất hay tương tự: </b>Trong nhiều trường hợp, một tập chỉ thị máy



chung được sử dụng cho toàn bộ các thành viên của họ máy. Do vậy, một chương trình
nếu có thể thực thi được trên một máy thì cũng sẽ thực thi được trên những máy khác
cùng họ với nó. Trong một số trường hợp, thành viên ở mức thấp nhất của họ máy có
tập chỉ thị là tập con của tập chỉ thị có trong thành viên ở mức cao nhất, và do vậy
chương trình có thể tương thích lên chứ khơng tương thích xuống.


<b>Hệ điều hành đồng nhất hay tương tự: </b>Một hệ điều hành chung sẽ được sử dụng cho


tất cả các thành viên của họ máy. Trong một số trường hợp, một số chức năng phụ sẽ
được đưa vào các thành viên mức cao.


<b>Gia tăng tốc độ: </b>Tốc độ thực thi chỉ thị gia tăng từ thành viên mức thấp đến thành
viên mức cao trong cùng một họ.


<b>Gia tăng số cổng nhập/xuất:</b> Đi từ thành viên mức thấp đến thành viên mức cao


trong cùng một họ.


<b>Gia tăng kích thước bộ nhớ: </b>Đi từ thành viên mức thấp đến thành viên mức cao trong


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

<b>Gia tăng chi phí: </b>Đi từ thành viên mức thấp đến thành viên mức cao trong cùng một
họ.


Họ máy IBM System/360 không những đã quyết định tương lai về sau của IBM mà
cịn có một ảnh hưởng sâu sắc đến tồn bộ ngành cơng nghiệp máy tính. Nhiều đặc
trưng của họ máy này đã trở thành tiêu chuẩn cho các máy tính lớn khác.


<b>Maùy DEC PDP-8 </b>


Trong lúc IBM giới thiệu máy System/360 thì DEC cho ra đời một hiện tượng khác


trong ngành công nghiệp máy tính. Đó là máy PDP-8. Vào lúc một máy tính cỡ trung
cũng địi hỏi một phịng có điều hịa khơng khí, máy PDP-8 đủ nhỏ để có thể đặt trên
một chiếc ghế dài vốn thường gặp trong phịng thí nghiệm hoặc để kết hợp vào trong
các thiết bị khác. Nó có thể thực hiện mọi cơng việc của một máy tính lớn với giá chỉ
có 16000 đơ la Mỹ, so với số tiền lên đến hàng trăm ngàn đô la để mua được một chiếc
máy System/360 của IBM. Tương phản với kiến trúc chuyển trung tâm được IBM sử
dụng cho các hệ thống 700/7000 và 360, các kiểu sau này của máy PDP-8 đã sử dụng
một cấu trúc rất phổ dụng hiện nay cho các máy mini và vi tính: cấu trúc đường truyền.
Hình 2.9 minh họa cấu trúc này. Đường truyền PDP-8, được gọi là Omnibus, gồm 96
đường tín hiệu riêng biệt, được sử dụng để mang chuyển tín hiệu điều khiển, địa chỉ và
dữ liệu. Do tất cả các thành phần hệ thống đều dùng chung một tập hợp các đường tín
hiệu, việc sử dụng chúng phải được CPU điều khiển. Kiến trúc này có độ linh hoạt cao,
cho phép các module được gắn vào đường truyền để tạo ra rất nhiều cấu hình khác
nhau. Hình 2.10 chỉ ra một cấu hình PDP-8/E khá lớn.


<b>Hình 2.9 Cấu trúc đường truyền PDP-8 </b>
<b> </b>


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

Với tốc độ phát triển nhanh chóng của cơng nghệ, mức độ cho ra đời các sản phẩm
mới ở mức cao, cũng như tầm quan trọng của phần mềm, của truyền thông và phần
cứng, việc phân loại máy tính theo thế hệ trở nên kém rõ ràng và ít có ý nghĩa như
trước đây. Trong phần tiếp theo, hai thành tựu tiêu biểu về công nghệ của máy tính thế
hệ thứ tư sẽ được giới thiệu một cách tóm lược.


<b>Hình 2.10 Sơ đồ khối hệ thống PDP-8/E </b>
<b>Bộ nhớ bán dẫn </b>


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

Năm 1970, Fairchild chế tạo ra bộ nhớ bán dẫn có dung lượng tương đối đầu tiên.
Chip này có kích thước bằng một lõi đơn, có thể lưu 256 bit nhớ, hoạt động không theo
cơ chế loại trừ và nhanh hơn bộ nhớ lõi từ. Nó chỉ cần 70 phần tỉ giây để đọc ra một bit


dữ liệu trong bộ nhớ. Tuy nhiên giá thành cho mỗi bit cao hơn so với lõi từ.


Kể từ năm 1970, bộ nhớ bán dẫn đã đi qua tám thế hệ: 1K, 4K, 16K, 64K, 256K,
1M, 4M, và giờ đây là 16M bit trên một chip đơn (1K = 210<sub>, 1M = 2</sub>20<sub>). Mỗi thế hệ cung </sub>


cấp khả năng lưu trữ nhiều gấp bốn lần so với thế hệ trước, cùng với sự giảm thiểu giá
thành trên mỗi bit và thời gian truy cập.


<b>Bộ vi xử lý </b>


Vào năm 1971, hãng Intel cho ra đời chip 4004, chip đầu tiên có chứa tất cả mọi
thành phần của một CPU trên một chip đơn. Kỷ nguyên bộ vi xử lý đã được khai sinh từ
đó. Chip 4004 có thể cộng hai số 4 bit và nhân bằng cách lập lại phép cộng. Theo tiêu
chuẩn ngày nay, chip 4004 rõ ràng quá đơn giản, nhưng nó đã đánh dấu sự bắt đầu của
một q trình tiến hóa liên tục về dung lượng và sức mạnh của các bộ vi xử lý. Bước
chuyển biến kế tiếp trong q trình tiến hóa nói trên là sự giới thiệu chip Intel 8008 vào
năm 1972. Đây là bộ vi xử lý 8 bit đầu tiên và có độ phức tạp gấp đơi chip 4004.


Đến năm 1974, Intel đưa ra chip 8080, bộ vi xử lý đa dụng đầu tiên được thiết kế
để trở thành CPU của một máy vi tính đa dụng. So với chip 8008, chip 8080 nhanh hơn,
có tập chỉ thị phong phú hơn và có khả năng định địa chỉ lớn hơn.


Cũng trong cùng thời gian đó, các bộ vi xử lý 16 bit đã bắt đầu được phát triển.
Mặc dù vậy, mãi đến cuối những năm 70, các bộ vi xử lý 16 bit đa dụng mới xuất hiện
trên thị trường. Sau đó đến năm 1981, cả Bell Lab và Hewlett-packard đều đã phát triển
các bộ vi xử lý đơn chip 32 bit. Trong khi đó, Intel giới thiệu bộ vi xử lý 32 bit của riêng
mình là chip 80386 vào năm 1985.





<b>2.5 BÀI TẬP VÀ CÂU HỎI CỦNG CỐ BÀI HỌC</b>



<b>Bài tập số 1:</b> Cho A = A(1), A(2), …, A(1000) vaø B = B(1), B(2), …, B(1000) laø hai


</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

<b>Bài tập số 2:</b> Từ sơ đồ trong hình 2.4, thêm vào khả năng logic cho phần chỉ thị IAS
còn lại, ngoại trừ các chỉ thị có liên quan đến nhân và chia.


<b>Bài tập số 3: </b>Trong các máy IBM 360 kiểu 65 và 75, các địa chỉ được lưu trong hai


đơn vị bộ nhớ chính (tức là các word chẵn trong một đơn vị và các word lẻ trong đơn vị
cịn lại). Mục đích của kỹ thuật này là gì?


<b>Bài tập số 4:</b> Cho biết ưu và khuyết điểm của việc lưu chương trình và dữ liệu trong
cùng một bộ nhớ.


<b>Bài tập số 5: </b>Cho biết lợi ích của kiến trúc chuyển trung tâm và kiến trúc đường
truyền.


<b>Chương </b>

<b>3</b>



<b>Đ</b>

<b>ường truyền hệ thống</b>



3.1 Các thành phần máy tính


3.2 Chức năng máy tính


<b> 3.3 </b>Các cấu trúc liên kết


<b> 3.4 </b>Liên kết đường truyền



<b> 3.5 </b>Bài tập và câu hỏi củng cố bài học




<b>3.1 Các thành phần máy tính</b>



</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

Nội dung của bộ nhớ này có thể định địa chỉ theo vị trí. Sự định địa chỉ này khơng phụ
thuộc kiểu dữ liệu của vị trí nhớ.


Việc thực thi xuất hiện theo kiểu tuần tự từ chỉ thị này sang chỉ thị khác.


Theo những khái niệm trên, có một tập hợp nhỏ các thành phần luận lý cơ bản có
thể kết hợp theo nhiều cách khác nhau để lưu trữ dữ liệu nhị phân và thực hiện các thao
tác luận lý số học trên dữ liệu đó. Nếu có một tính tốn cụ thể được thực hiện, chúng ta
có thể xây dựng một cấu hình gồm các thành phần luận lý được thiết kế đặc biệt cho
tính tốn đó. Chúng ta có thể liên hệ quá trình kết nối các thành phần khác nhau thành
cấu hình mong muốn như một dạng lập trình. "Chương trình" thu được ở dạng phần cứng
và được gọi là <i>chương trình đấu dây chết.</i>


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

Hình 3.1 Các tiếp cận phần cứng và phần mềm


Với cách tổ chức như vậy, việc lập trình giờ đây đã dễ hơn rất nhiều. Thay vì phải
đấu dây lại phần cứng cho mỗi chương trình mới, tất cả những việc cần làm là cung cấp
một dãy các mã mới. Mỗi mã là một chỉ thị được phần cứng thông dịch thành những tín
hiệu điều khiển. Để phân biệt phương thức lập trình mới này so với trước đó, dãy các
mã hay chỉ thị được gọi là <i>phần mềm</i>.


Hình 3.1 (b) chỉ ra hai thành phần chính của hệ thống: một bộ thông dịch chỉ thị và
một module gồm các chức năng luận lý số học đa dụng. Hai thành phần này hợp thành
CPU. Nhiều thành phần khác nữa cần phải có để tạo thành một máy tính với đầy đủ


chức năng. Dữ liệu và chỉ thị phải được nhập vào hệ thống thông qua một module chứa
các thành phần cơ bản cho việc tiếp nhận dữ liệu và chỉ thị ở một dạng thức nào đó. Sau
đó module này sẽ chuyển đổi thơng tin nhận được thành một dạng nội tại gồm những tín
hiệu mà hệ thống có thể hiểu được. Một phương tiện để báo cáo kết quả cũng không
thể thiếu được, và đây là một dạng của một module xuất. Kết hợp cả hai module lại với
nhau, chúng ta có các <i>thành phần nhập/xuất.</i>


</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

thể yêu cầu truy xuất đến nhiều hơn một phần tử tại một thời điểm trong một dãy đã
xác định trước. Do đó cần phải có chỗ để lưu tạm thời cả chỉ thị và dữ liệu. Module đó
được gọi là <i>bộ nhớ</i>, hay <i>bộ nhớ chính</i> để phân biệt với các thiết bị ngoại vi hay lưu trữ
bên ngoài máy tính. Von Neumann đã chỉ ra rằng bộ nhớ có thể dùng để lưu cả chỉ thị
và dữ liệu. Dữ liệu là những thứ trên đó các tính tốn được thực hiện còn chỉ thị là
những thứ sẽ được thơng dịch với tư cách mã sinh ra tín hiệu điều khiển.


Hình 3.2 minh họa ba thành phần ở mức cao nhất này của máy tính cùng với sự
tương tác giữa chúng. CPU chủ yếu làm nhiệm vụ điều khiển. Nó trao đổi dữ liệu với
bộ nhớ thơng qua việc sử dụng hai thanh ghi nội CPU là thanh ghi địa chỉ bộ nhớ
(MAR), dùng để đặc tả địa chỉ trong bộ nhớ cho thao tác đọc/ghi kế tiếp, và thanh ghi
vùng đệm bộ nhớ (MBR), dùng để chứa dữ liệu sẽ được đọc/ghi từ/vào bộ nhớ. Hoàn
toàn tương tự, thanh ghi địa chỉ nhập xuất (I/OAR) đặc tả một thiết bị nhập/xuất. Một
thanh ghi vùng đệm nhập/xuất được sử dụng cho việc trao đổi dữ liệu giữa module
nhập/xuất và CPU.


Một module bộ nhớ bao gồm một tập hợp các vị trí được xác định bởi những địa chỉ
được đánh số tuần tự. Mỗi vị trí chứa một số nhị phân có thể được thơng dịch như dữ
liệu hay chỉ thị. Một module nhập/xuất truyền dữ liệu từ thiết bị bên ngoài đến CPU và
bộ nhớ hay ngược lại. Module này chứa các vùng đệm nội để lưu tạm thời dữ liệu cho
đến khi nó được gửi đi.


<b>3.2 Chức năng máy tính</b>




Chức năng cơ bản của máy tính là thực thi chương trình. Chương trình được thực thi
gồm một dãy các chỉ thị được lưu trữ trong bộ nhớ. Đơn vị xử lý trung tâm (CPU) đảm
nhận việc thực thi này.


Quá trình thực thi chương trình, xét trên quan điểm xử lý chỉ thị, bao gồm hai bước:
CPU đọc chỉ thị từ bộ nhớ và thực thi chỉ thị đó. Việc thực thi chương trình là sự lập đi
lập lại quá trình lấy chỉ thị và thực thi chỉ thị.


</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

Hình 3.2 Các thành phần máy tính ở mức quan sát cao nhất


Hình 3.3 Chu kỳ chỉ thị cơ sở


<b>Các chu kỳ lấy và thực thi chỉ thị </b>


Ở đầu mỗi chu kỳ chỉ thị, CPU lấy một chỉ thị từ bộ nhớ. Một thanh ghi gọi là bộ
đếm chương trình (PC) được sử dụng để theo dõi chỉ thị cần lấy ra kế tiếp. Trừ khi được
chỉ ra rõ ràng, CPU luôn tăng PC sau khi mỗi chỉ thị được lấy ra để trỏ đến chỉ thị kế
tiếp trong dãy chỉ thị.


</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

thông dịch chỉ thị và thực hiện hoạt động được yêu cầu. Một cách tổng quát, các hoạt
động này rơi vào một trong bốn nhóm sau:


<i>CPU – Bộ nhớ</i>: dữ liệu có thể được chuyển từ CPU vào bộ nhớ hay ngược lại.


<i>CPU </i>– <i>Thành phần nhập/xuất</i>: dữ liệu có thể được truyền từ bên ngồi vào CPU
thơng qua việc liên lạc giữa CPU và một module nhập/xuất.


<i>Xử lý dữ liệu</i>: CPU có thể thực hiện thao tác luận lý hay số học trên dữ liệu.



<i>Điều khiển</i>: một chỉ thị có thể đặc tả sự thay đổi thứ tự thực thi của dãy chỉ thị.
Chúng ta xét một ví dụ đơn giản sử dụng một máy tính giả có các đặc trưng được
liệt kê trong hình 3.4


Hình 3.4 Các đặc trưng của một máy giả


CPU có một bộ tích lũy (AC) để lưu dữ liệu tạm thời. Cả chỉ thị và dữ liệu đều có
độ dài 16 bit. Do vậy rất tiện lợi nếu như chúng ta tổ chức bộ nhớ theo các vị trí 16 bit
hay word. Dạng chỉ thị cho thấy có 24<sub> = 16 mã thao tác khác nhau và 2</sub>12<sub> = 4096 (4K) </sub>


word nhớ có thể được định địa chỉ trực tiếp.


Hình 3.5 minh họa sự thực thi một phần chương trình với sự thể hiện các phần bộ
nhớ và thanh ghi CPU thích hợp. Ký hiệu được sử dụng ở hệ thập lục phân. Phân đoạn
chương trình trong hình cho thấy nội dung của các word nhớ từ địa chỉ 94016 đến địa chỉ


</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

Hình 3.5 Ví dụ về thực thi chương trình




Trong hình 3.5, có ba chỉ thị được yêu cầu, vốn được mô tả thành ba chu kỳ lấy và
thực thi gồm:


Bộ đếm chương trình (PC) chứa 300 là địa chỉ của chỉ thị đầu tiên. Địa chỉ này được
tải vào trong thanh ghi chỉ thị (IR). Chú ý rằng q trình này sẽ bao gồm ln việc sử
dụng thanh ghi địa chỉ bộ nhớ (MAR) và thanh ghi vùng đệm bộ nhớ (MBR). Để đơn
giản, các thanh ghi trung gian này được bỏ qua.


4 bit đầu tiên trong IR chỉ ra rằng bộ tích lũy (AC) sẽ được tải vào. 12 bit còn lại đặc
tả địa chỉ, ở đây là 940.



PC được tăng lên một đơn vị và chỉ thị kế được lấy ra.


</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

Nội dung của AC được lưu ở vị trí 941.


Trong ví dụ này, ba chu kỳ chỉ thị, mỗi chu kỳ gồm một chu kỳ lấy lệnh và thực thi,
được yêu cầu để cộng nội dung tại vị trí 940 vào nội dung tại vị trí 941. Với tập chỉ thị
phức tạp hơn chúng ta sẽ cần ít chu kỳ hơn.


<b>Chức năng nhập/xuất </b>


Cho đến thời điểm này, chúng ta đã khảo sát sự hoạt động của máy tính dưới sự
điều khiển của CPU cũng như sự tương tác giữa CPU và bộ nhớ. Ở đây chúng ta trình
bày một cách ngắn gọn thêm về chức năng nhập/xuất của máy tính.


Một module nhập/xuất có thể trao đổi dữ liệu trực tiếp với CPU. Tương tự như việc
CPU có thể khởi động một thao tác đọc/ghi bộ nhớ, định địa chỉ của một vị trí cụ thể,
CPU cũng có thể đọc/ghi dữ liệu vào/ra một module nhập/xuất. Trong trường hợp này,
CPU chỉ định một thiết bị cụ thể được điều khiển bởi một module nhập/xuất. Do đó,
một dãy chỉ thị có dạng tương tự như trong hình 3.5 có thể xuất hiện với các chỉ thị
nhập/xuất hơn là với các chỉ thị tham chiếu bộ nhớ.


Trong một số trường hợp, người ta mong muốn là có thể cho phép các trao đổi
nhập/xuất xuất hiện trực tiếp với bộ nhớ. Trong tình huống đó, CPU trao quyền cho một
module nhập/xuất để đọc/ghi bộ nhớ sao cho việc truyền dữ liệu giữa bộ nhớ – bộ phận
nhập/xuất có thể xuất hiện không cần đến sự can thiệp của CPU. Trong q trình truyền
dữ liệu đó, module nhập/xuất tạo ra các lệnh đọc/ghi vào bộ nhớ, thay thế vai trò của
CPU trong việc trao đổi dữ liệu. Thao tác này được biết đến với tên gọi truy xuất bộ
nhớ trực tiếp (DMA).





<b>3.3 Các cấu trúc liên kết</b>



Một máy tính bao gồm một tập các thành phần hay module thuộc ba kiểu cơ bản
(CPU, bộ nhớ, thiết bị nhập xuất) liên lạc với nhau. Trong thực tế, một máy tính có thể
được xem như một mạng gồm những thành phần cơ bản. Do đó phải có các đường dẫn
nối các module lại với nhau.


</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

Hình 3.6 Các module máy tính


Bộ nhớ: Một cách tiêu biểu, một module bộ nhớ sẽ bao gồm N word có độ dài bằng
nhau. Mỗi word được gán cho một địa chỉ dạng số duy nhất (0, 1,...,N-1). Một word dữ
liệu có thể được đọc từ hay ghi vào bộ nhớ. Bản chất của thao tác sẽ được chỉ ra bởi các
tín hiệu điều khiển Đọc và Ghi. Vị trí của thao tác được đặc tả thông qua địa chỉ.


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

nhập xuất dữ liệu với một thiết bị ngoại vi. Cuối cùng, một module nhập/xuất có thể gửi
tín hiệu ngắt đến CPU.


CPU: CPU đọc vào các chỉ thị và dữ liệu, ghi ra dữ liệu sau khi xử lý, và sử dụng các
tín hiệu điều khiển để điều phối hoạt động của tồn thể hệ thống. Nó cũng nhận các tín
hiệu ngắt.


Danh sách đề cập đến ở trên xác định dữ liệu được trao đổi. Cấu trúc liên kết phải
hỗ trợ các kiểu truyền dữ liệu sau đây:


Bộ nhớ đến CPU: CPU đọc một chỉ thị hay một đơn vị dữ liệu từ bộ nhớ.
CPU đến bộ nhớ: CPU ghi một đơn vị dữ liệu vào bộ nhớ.


Thành phần nhập/xuất đến CPU: CPU đọc dữ liệu từ một thiết bị nhập/xuất thông qua


một module nhập/xuất.


CPU đến thành phần nhập/xuất: CPU gửi dữ liệu đến thiết bị nhập/xuất.


Thành phần nhập/xuất đến hay từ bộ nhớ: Đối với hai trường hợp này, một module
nhập/xuất được cho phép trao đổi dữ liệu trực tiếp với bộ nhớ mà không qua CPU bằng
cách sử dụng cơ chế truy cập bộ nhớ trực tiếp (DMA).


Trải qua nhiều năm, một số cấu trúc liên kết đã được thử nghiệm. Cho đến nay phổ
biến nhất vẫn là cấu trúc đường truyền (bus) và các cấu trúc đa đường truyền khác
nhau.


<b>3.4 Liên kết đường truyền</b>



Một đường truyền là một hành lang liên lạc nối hai hay nhiều thiết bị. Đặc trưng
chính của một đường truyền là sự truyền dữ liệu thông qua một phương tiện dùng chung.
Nhiều thiết bị nối kết với đường truyền và có thể nhận một tín hiệu được truyền đi từ
bất kỳ một thiết bị nào trong hệ thống. Nếu hai thiết bị truyền trong cùng một khoảng
thời gian, tín hiệu của chúng sẽ chồng lấp lên nhau và bị làm sai lệch. Do đó chỉ có một
thiết bị tại một thời điểm thì mới truyền thành cơng dữ liệu.


</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

Các hệ thống máy tính chứa nhiều loại đường truyền khác nhau cung cấp các hành
lang giữa các thành phần tại nhiều mức trong sự phân cấp hệ thống máy tính. Một
đường truyền kết nối các thành phần chính của máy tính như CPU, bộ nhớ, thành phần
nhập/xuất thì được gọi là một <i>đường truyền hệ thống.</i> Các cấu trúc liên kết máy tính phổ
biến nhất đều dựa trên việc sử dụng một hay nhiều đường truyền hệ thống.


<b>Cấu trúc đường truyền </b>


Một đường truyền hệ thống thường có từ 50 đến 100 đường riêng biệt. Mỗi đường


được gán một ý nghĩa hay chức năng cụ thể. Mặc dù có nhiều kiểu thiết kế đường
truyền, trên một đường truyền bất kỳ, các đường có thể được phân thành ba nhóm chức
năng như được thể hiện trong hình 3.7, bao gồm dữ liệu, địa chỉ và đường điều khiển.
Ngồi ra, có thể có các đường phân phối nguồn điện cho các module nối vào đường
truyền.


Hình 3.7 Sơ đồ liên kết đường truyền


Các <i>đường dữ liệu</i> cung cấp một đường dẫn cho việc di chuyển dữ liệu giữa các
module hệ thống. Những đường này được gọi là <i>đường truyền dữ liệu.</i> Đường truyền dữ
liệu thường có 8, 16, hay 32 đường riêng biệt, số các đường được đề cập đến với tên gọi


<i>độ rộng</i> của đường truyền dữ liệu. Vì mỗi đường chỉ có thể mang 1 bit tại một thời
điểm, số các đường sẽ xác định số bit có thể truyền đi tại mỗi thời điểm. Độ rộng của
đường truyền dữ liệu là một nhân tố quan trọng trong việc xác định hiệu suất hệ thống
toàn phần. Chẳng hạn, nếu đường truyền dữ liệu có độ rộng 8 bit và mỗi chỉ thị có độ
dài 16 bit, CPU phải truy cập module bộ nhớ hai lần trong mỗi chu kỳ chỉ thị.


Các <i>đường địa chỉ</i> được sử dụng để chỉ định nguồn hay đích của dữ liệu có trên
đường truyền dữ liệu. Lấy ví dụ, nếu CPU muốn đọc một word (8, 16, hay 32 bit) dữ
liệu từ bộ nhớ, nó sẽ đặt địa chỉ của word cần đọc trên các đường địa chỉ. Rõ ràng là độ
rộng của đường truyền địa chỉ sẽ xác định dung lượng bộ nhớ tối đa có thể có của hệ
thống. Hơn nữa, các đường địa chỉ nói chung được dùng để định địa chỉ các cổng
nhập/xuất. Một cách tiêu biểu, các bit có bậc cao hơn được sử dụng để chọn một


</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

module bộ nhớ (module 0) với 128 word nhớ, còn địa chỉ 10000000 và các địa chỉ trên
nó tham chiếu đến các thiết bị gắn vào một module nhập/xuất (module 1).


Các <i>đường điều khiển</i> được sử dụng để điều khiển việc truy cập đến và sử dụng các
đường dữ liệu cũng như địa chỉ. Vì các đường này được dùng chung bởi tất cả các thành


phần, phải có một phương tiện điều khiển việc sử dụng chúng. Các tín hiệu điều khiển
truyền cả lệnh lẫn thông tin định thời giữa những module hệ thống. Tín hiệu định thời
chỉ ra sự đúng đắn của dữ liệu và thông tin địa chỉ. Tín hiệu lệnh đặc tả thao tác cần
được thực hiện. Các đường điều khiển chính gồm:


Ghi bộ nhớ: Làm cho dữ liệu trên đường truyền được ghi vào vị trí đã định địa chỉ.
Đọc bộ nhớ: Làm cho dữ liệu từ vị trí đã định địa chỉ được đặt lên đường truyền.
Ghi nhập/xuất: Làm cho dữ liệu trên đường truyền được xuất ra cổng nhập/xuất đã
định địa chỉ.


Đọc nhập/xuất: Làm cho dữ liệu từ cổng nhập/xuất đã định địa chỉ được đặt lên đường
truyền.


Truyền ACK: Chỉ ra rằng dữ liệu được chấp nhận từ hay đặt trên đường truyền.
Yêu cầu đường truyền: Chỉ ra rằng một module cần quyền điều khiển đường truyền.
Uûy nhiệm đường truyền: Chỉ ra rằng module đòi hỏi đã được ủy nhiệm quyền điều
khiển đường truyền.


Yêu cầu ngắt: Chỉ ra rằng có một ngắt đang chờ xử lý.
Ngắt ACK: Cho biết ngắt treo đã được nhận biết.
Đồng hồ: Được sử dụng để đồng bộ các thao tác.
Lấy lại giá trị ban đầu: Khởi động tất cả module.
Thao tác trên đường truyền như sau:


Nếu có một module cần gửi dữ liệu đến một module khác, nó phải thực hiện hai
việc:


</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

Nếu có một module cần yêu cầu dữ liệu từ một module khác, nó phải:
-Lấy quyền sử dụng đường truyền



-Truyền yêu cầu đến module khác thông qua các các đường địa chỉ và điều khiển thích
hợp. Sau đó nó phải đợi module thứ hai gửi dữ liệu đến.


Hình 3.8 minh họa một sắp xếp vật lý phổ biến của một kiến trúc đường truyền.


Hình 3.8 Một hiện thực hóa vật lý tiêu biểu cho một kiến trúc đường truyền


<b>Các phân cấp đa đường truyền </b>


Nếu có một lượng lớn các thiết bị được nối vào đường truyền, sự vận hành sẽ bị
giảm sút. Có hai lý do chính:


Một cách tổng qt, khi càng có nhiều thiết bị gắn vào đường truyền thì sự chậm trễ
trong lan truyền càng lớn. Khi sự điều khiển của đường truyền đi từ thiết bị này sang
thiết bị khác một cách thường xuyên, những sự chậm trễ về lan truyền này có thể ảnh
hưởng đáng kể đến sự vận hành.


</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

Vì lý do nói trên, hầu hết các hệ thống máy tính đều sử dụng nhiều đường truyền
tạo thành một sơ đồ phân cấp. Một cấu trúc truyền thống tiêu biểu được chỉ ra trên hình
3.9 (a). Có một đường truyền cục bộ nối từ bộ xử lý đến một bộ nhớ cache và có thể hỗ
trợ nhiều thiết bị cục bộ. Bộ điều khiển bộ nhớ cache khơng chỉ nối nó với đường
truyền cục bộ này, mà còn với cả đường truyền hệ thống, nơi tất cả các module bộ nhớ
chính đều được nối vào. Như sẽ được thảo luận trong chương 4, việc sử dụng cấu trúc
cache cách ly bộ xử lý ra khỏi yêu cầu truy cập bộ nhớ chính thường xuyên. Do vậy, bộ
nhớ chính có thể được di chuyển ra khỏi đường truyền cục bộ vào trong một đường
truyền hệ thống. Bằng cách này, các thành phần nhập/xuất truyền dữ liệu đến và đi
khỏi bộ nhớ chính thơng qua đường truyền hệ thống sẽ không làm ảnh hưởng đến hoạt
động của bộ xử lý.


Chúng ta cũng có thể kết nối trực tiếp các bộ điều khiển nhập/xuất vào đường


truyền hệ thống. Một giải pháp hiệu quả hơn là sử dụng các đường truyền mở rộng cho
mục đích này. Một giao tiếp đường truyền mở rộng sẽ lưu vào vùng đệm dữ liệu truyền
tải giữa đường truyền hệ thống và các bộ điều khiển có trên đường truyền mở rộng. Sự
sắp xếp này cho phép hệ thống hỗ trợ một diện rộng các thiết bị nhập/xuất, đồng thời
cô lập sự lưu thông bộ nhớ – bộ xử lý khỏi sự lưu thông về nhập/xuất.


Hình 3.9 (a) chỉ ra một số thiết bị nhập/xuất kiểu mẫu có thể được nối vào đường
truyền mở rộng. Các nối kết mạng bao gồm các mạng cục bộ (LAN) như mạng
10-Mbps Ethernet và các nối kết sang mạng diện rộng như mạng chuyển mạch gói. SCSI
(small computer system interface) bản thân nó đã là một kiểu đường truyền được dùng
để hỗ trợ những ổ đĩa cục bộ cùng với các thiết bị ngoại vi khác. Một cổng tuần tự có
thể được sử dụng để hỗ trợ máy in hay máy quét.


</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

Hình 3.9 (a) Cấu trúc đường truyền truyền thống


</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

Hình 3.9 (b) Kiến trúc hiệu suất vận hành cao


Lợi ích của cách tiếp cận này là đường truyền tốc độ cao mang các thiết bị có yêu
cầu cao lại gần hơn trong mối tích hợp với bộ xử lý và đồng thời độc lập với bộ xử lý.
Do đó, các khác biệt trong bộ xử lý, trong đường truyền tốc độ cao, trong các định nghĩa
về đường tín hiệu sẽ có khả năng chịu lỗi. Những thay đổi về kiến trúc bộ xử lý không
làm ảnh hưởng đến đường truyền tốc độ cao và ngược lại.


<b>Các yếu tố trong thiết kế đường truyền </b>


Mặc dù đã có một lượng lớn các cài đặt đường truyền tồn tại, trong thực tế chỉ có
một số tham số cơ bản hay yếu tố thiết kế giữ vai trò phân loại các đường truyền. Cụ
thể chúng ta có các yếu tố chính sau:


-Kiểu đường truyền



-Phương pháp phân xử
-Định thời


-Độ rộng đường truyền


-Kiểu truyền dữ liệu


</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

Có hai kiểu đường truyền tổng quát là đường truyền chuyên dụng và đường truyền
đa công. Đường truyền chuyên dụng được gán vĩnh viễn cho một chức năng hay một tập
con vật lý của các thành phần máy tính.


Một ví dụ cho sự chuyên biệt hóa về chức năng là việc sử dụng các đường dữ liệu
và địa chỉ chuyên dụng tách biệt, vốn phổ biến đối với nhiều đường truyền. Tuy nhiên,
đây khơng phải là điểm cần thiết. Lấy ví dụ, thơng tin dữ liệu và địa chỉ có thể được
truyền đi trên cùng một tập các đường bằng cách sử dụng đường điều khiển Địa chỉ
Đúng. Vào lúc bắt đầu truyền dữ liệu, địa chỉ được đặt lên đường truyền và đường điều
khiển Địa chỉ Đúng được kích hoạt. Tại điểm này, mỗi module có một khoảng thời gian
đã được đặc tả để sao chép địa chỉ và xác định xem đó có phải là một module đã định
địa chỉ hay khơng. Sau đó địa chỉ sẽ được xóa khỏi đường truyền để các kết nối trên
cùng đường truyền đó có thể dùng được cho các thao tác truyền dữ liệu đọc hay ghi.
Phương pháp sử dụng cùng một tập các đường cho các mục đích khác nhau này được
biết đến với tên gọi đa công theo thời gian.


Lợi ích của tiếp cận đa cơng theo thời gian là việc sử dụng ít hơn các đường, giúp
tiết kiệm khơng gian và phí tổn. Điểm bất lợi của nó là cần nhiều mạch điện tử phức
tạp hơn cho từng module. Ngoài ra sẽ có sự sụt giảm tiềm tàng về hiệu suất vì có một
số sự kiện dùng chung các đường như vậy không thể diễn ra một cách song song.


<i> Sự chuyên dụng vật lý</i> đề cập đến việc sử dụng nhiều đường truyền, mỗi đường


truyền trong chúng chỉ kết nối một tập con các thành phần. Một ví dụ cụ thể là việc sử
dụng đường truyền nhập/xuất để liên kết tất cả các module nhập/xuất. Đường truyền
này sau đó được kết nối với đường truyền chính thơng qua một loại module bảng mạch
nhập/xuất nào đó. Lợi ích tiềm ẩn của sự chuyên dụng vật lý là băng thông cao, vì sẽ có
ít tranh chấp đường truyền hơn. Điểm bất lợi ở đây là sự gia tăng kích thước và phí tổn
hệ thống.


<b>Phương pháp phân xử </b>


</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>

module sẽ hành động phối hợp với nhau nhằm sử dụng chung đường truyền. Với cả hai
phương pháp nói trên về phân xử, mục tiêu đạt đến là chỉ định một thiết bị, hoặc CPU,
hoặc module nhập/xuất, làthiết bị chủ. Thiết bị chủ này sau đó có thể khởi động việc
truyền dữ liệu (đọc hay ghi) với một thiết bị khác, hoạt động như thiết bị phụ thuộc
trong sự trao đổi dữ liệu đặc biệt này.


<b>Định thời </b>


Định thời đề cập đến cách thức các sự kiện được phối hợp với nhau trên đường
truyền. Với sự định thời đồng bộ, việc xuất hiện các sự kiện trên đường truyền được xác
định bởi một đồng hồ. Đường truyền có một đường đồng hồ trên đó đồng hồ sẽ truyền
một dãy các giá trị luân phiên 0 và 1 trong những thời khoảng bằng nhau. Một phiên
truyền 0 – 1 đơn được gọi là <i>chu kỳ đồng hồ </i>hay <i>chu kỳ đường truyền</i> và xác định một
khe thời gian. Tất cả các thiết bị khác trên đường truyền có thể đọc đường đồng hồ, và
mọi sự kiện đều được bắt đầu tại lúc bắt đầu của một chu kỳ đồng hồ. Hình 3.10 (a) thể
hiện sơ đồ định thời của một thao tác đọc đồng bộ. Các tín hiệu đường truyền khác có
thể thay đổi tại cạnh dẫn của tín hiệu đồng hồ. Hầu hết các sự kiện chiếm chỉ một chu
kỳ đồng hồ. Trong ví dụ này, CPU tạo ra một tín hiệu đọc và đặt địa chỉ bộ nhớ lên
đường truyền địa chỉ. Nó cũng tạo ra một tín hiệu bắt đầu nhằm đánh dấu sự có mặt của
thơng tin địa chỉ và điều khiển trên đường truyền. Một module bộ nhớ nhận biết địa chỉ
đó và sau khi chờ khoảng 1 chu kỳ, nó sẽ đặt dữ liệu cùng tín hiệu thơng báo lên đường


truyền.


Hình 3.10 (a) Định thời đồng bộ


</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>

chỉ và các tín hiệu đọc lên đường truyền. Sau khi tạm dừng lại để các tín hiệu này ổn
định, nó sẽ sinh ra một tín hiệu MSYN (master sync), chỉ ra sự hiện hữu của các tín hiệu
điều khiển và địa chỉ đúng. Module bộ nhớ đáp ứng bằng tín hiệu SSYN (slave sync) và
dữ liệu, chỉ ra sự trả lời.


Định thời đồng bộ là phương pháp dễ cài đặt và kiểm tra hơn. Tuy nhiên, nó kém
linh hoạt so với định thời dị bộ. Do tất cả các thiết bị trên một đường truyền đồng bộ
được kết buộc vào một tốc độ đồng hồ cố định, hệ thống khơng thu được lợi ích trong
việc vận hành thiết bị. Với định thời dị bộ, sự trộn lẫn giữa các thiết bị chậm và nhanh
bằng cách sử dụng các công nghệ cũ và mới có thể sử dụng chung một đường truyền.


Hình 3.10 (b) Định thời dị bộ



<b>Độ rộng đường truyền </b>


Độ rộng của đường truyền dữ liệu có ảnh hưởng đến sự vận hành của hệ thống:
đường truyền dữ liệu càng rộng, số bit được truyền đi tại một thời điểm càng lớn. Độ
rộng của đường truyền địa chỉ lại có ảnh hưởng đến dung lượng hệ thống: độ rộng của
đường truyền địa chỉ càng lớn, lượng vị trí nhớ có thể tham chiếu đến càng nhiều.




Kiểu truyền dữ liệu


</div>
<span class='text_page_counter'>(46)</span><div class='page_container' data-page=46>

Trong trường hợp đường truyền dữ liệu/địa chỉ đa công, đường truyền được dùng trước


hết cho việc đặc tả địa chỉ và sau đó cho việc chuyển dữ liệu. Với thao tác đọc, thường
có khoảng thời gian chờ khi dữ liệu được lấy ra từ thiết bị phụ thuộc và đặt lên đường
truyền. Với cả đọc lẫn ghi, cũng có thể có độ trễ nếu như cần phải làm việc với bộ phân
xử để giành quyền điều khiển đường truyền cho phần còn lại của thao tác.


Trong trường hợp đường truyền dữ liệu và địa chỉ chuyên dụng, địa chỉ được đặt
lên đường truyền địa chỉ và tồn tại ở đó trong khi dữ liệu được đặt lên đường truyền dữ
liệu. Với thao tác ghi, thiết bị chủ đặt dữ liệu lên đường truyền địa chỉ ngay khi địa chỉ
ổn định và thiết bị phụ thuộc khi đó sẽ có cơ hội để nhận biết địa chỉ. Với thao tác đọc,
thiết bị phụ thuộc đặt dữ liệu lên trên đường truyền dữ liệu ngay khi nó nhận ra địa chỉ
và lấy được dữ liệu.


Ngồi các kiểu thao tác nói trên, một số đường truyền còn hỗ trợ các thao tác phối
hợp. Một thao tác đọc – chỉnh sửa – ghi đơn giản là một phép đọc tiếp theo bằng một
phép ghi trên cùng một địa chỉ. Địa chỉ chỉ được phát đi một lần tại lúc bắt đầu thao tác.
Tồn bộ thao tác khơng thể chia nhỏ nhằm tránh mọi sự truy cập đến phần tử dữ liệu
đang được chỉnh sửa.


Một số hệ thống đường truyền cũng hỗ trợ việc truyền dữ liệu dạng khối. Trong
trường hợp này, một chu kỳ địa chỉ được theo sau bởi <i>n</i> chu kỳ dữ liệu. Mục dữ liệu đầu
tiên được truyền đến hoặc từ một địa chỉ đã được đặc tả, phần dữ liệu còn lại được
truyền đến/từ các địa chỉ tiếp sau.


</div>
<span class='text_page_counter'>(47)</span><div class='page_container' data-page=47>

<b>3.5 Bài tập và câu hỏi củng cố bài học</b>



<b>Bài tập số 1:</b> Máy giả trong hình 3.4 cũng có hai chỉ thị nhập/xuất là:
0011 = tải AC từ thiết bị nhậ/xuất


0111 = lưu AC lên thiết bị nhập/xuất



Trong các trường hợp này, địa chỉ 12 bit đặc tả một thiết bị nhập/xuất cụ thể. Chỉ ra sự
thực thi chương trình (sử dụng dạng trình bày trong hình 3.5) cho các chương trình sau:
Tải AC từ thiết bị số 5.


Cộng nội dung của vị trí nhớ 940.
Lưu AC lên thiết bị số 6.




<b>Bài tập số 2:</b> Xét một hệ thống máy tính chứa một module nhập/xuất điều khiển bàn


phím/máy in đơn giản. Các thanh ghi sau đây được chứa trong CPU và nối kết trực tiếp
đến đường truyền hệ thống:


INPR: Thanh ghi nhập – 8 bit
OUTR: Thanh ghi xuất – 8 bit
FGI: Cờ nhập – 1 bit


FGO: Cờ xuất – 1 bit


IEN: Thanh ghi khả ngắt – 1 bit


Tín hiệu nhấn phím từ bàn phím và tín hiệu xuất ra máy in được điều khiển bởi một
module nhập/xuất. Bàn phím có khả năng mã hóa một ký hiệu chữ số thành một word 8
bit và giải mã một word 8 bit thành một ký hiệu chữ số.


Mô tả cách thức CPU sử dụng bốn thanh ghi đầu tiên liệt kê ở trên để phục vụ cho việc
nhập/xuất thơng qua bàn phím.


</div>
<span class='text_page_counter'>(48)</span><div class='page_container' data-page=48>

<b>Bài tập số 3: </b>Một hệ thống bộ nhớ gồm một số các module bộ nhớ kết nối với nhau


trên một đường truyền bộ nhớ chung. Khi một thao tác ghi được thực hiện, đường truyền
bị chiếm trong 100 nano giây bởi các tín hiệu điều khiển, địa chỉ và dữ liệu. Trong cùng
khoảng thời gian 100 nano giây và trong 500 nano giây sau đó, module bộ nhớ đã định
địa chỉ thực thi 1 chu kỳ tiếp nhận và lưu trữ dữ liệu. Thao tác của các module bộ nhớ
có thể chồng lấp lên nhau, nhưng chỉ có một yêu cầu ở trên đường truyền tại mỗi thời
điểm.


Giả sử có 8 module như thế nối vào đường truyền. Giá trị tối đa của tốc độ truyền dữ
liệu (word/giây) trong việc lưu trữ là bao nhiêu?


Vẽ đồ thị tốc độ ghi cực đại dưới dạng hàm của thời gian chu kỳ bộ nhớ, giả sử thời gian
bận của 8 module bộ nhớ và đường truyền là 100 nano giây.


<b>Chương </b>

<b>4</b>



<b>B</b>

<b>ộ nhớ trong của máy tính</b>



4.1 Giới thiệu về hệ thống bộ nhớ máy tính.


<b> 4.2 </b>Bộ nhớ chính bán dần


4.3 Bộ nhớ cache


4.4 Bài tập và câu hỏi củng cố bài tập




<b>4.1 Giới thiệu về hệ thống bộ nhớ máy tính</b>



<b>Các đặc trưng của hệ thống bộ nhớ </b>



</div>
<span class='text_page_counter'>(49)</span><div class='page_container' data-page=49>

Dung lượng (kích thước word, số lượng word)
Đơn vị truyền (word, khối)


Phương thức truy cập (tuần tự, trực tiếp, ngẫu nhiên, liên kết)
Hiệu suất (thời gian truy cập, chu kỳ thời gian, tốc độ truyền)
Kiểu vật lý (bán dẫn, bề mặt từ hóa)


Đặc tính vật lý (khả biến/bất biến, xóa được/khơng xóa được)
Cách tổ chức


Các mục tiếp sau sẽ trình bày một cách chi tiết về ý nghĩa và tầm quan trọng của từng
đặc trưng nói trên.


<b>Vị trí </b>


Bộ nhớ máy tính bao gồm cả hai loại bộ nhớ trong và ngồi. Bộ nhớ trong của máy
tính thường được đề cập đến như bộ nhớ chính. Bộ nhớ ngồi của máy tính gồm các
thiết bị lưu trữ ngoại vi, như đĩa và băng từ, vốn có thể truy cập được đối với CPU thông
qua các bộ điều khiển nhập/xuất.


<b>Dung lượng </b>


Với bộ nhớ trong, dung lượng thường được biểu diễn dưới dạng byte. (1 byte = 8 bit)
hay word. Các độ dài word phổ biến là 8, 16, và 32 bit. Bộ nhớ ngồi có dung lượng
được biểu thị theo byte.


<b>Đơn vị truyền </b>


Với bộ nhớ trong, đơn vị truyền bằng với số đường dữ liệu vào/ra khỏi module bộ


nhớ. Giá trị này thường bằng với độ dài của một word, nhưng cũng có thể khơng. Để
hiểu rõ hơn khái niệm này, chúng ta hãy xem xét ba khái niệm có liên quan đến bộ nhớ
trong:


<b>Word:</b> Đơn vị tự nhiên của tổ chức máy tính. Kích thước của một word thường bằng


</div>
<span class='text_page_counter'>(50)</span><div class='page_container' data-page=50>

<b>Các đơn vị khả định địa chỉ:</b> Trong nhiều hệ thống, đơn vị khả định địa chỉ là word.
Mặc dù vậy, có một số hệ thống cho phép định địa chỉ ở mức byte. Trong mọi trường
hợp, mối quan hệ giữa độ dài A của một địa chỉ và số N các đơn vị khả định địa chỉ là
2A<sub> = N.</sub>


<b>Đơn vị truyền:</b> Đối với bộ nhớ chính, đây là số bit đọc/ghi vào bộ nhớ tại một thời
điểm. Đơn vị truyền không nhất thiết bằng một word hay một đơn vị khả định địa chỉ.
Với bộ nhớ ngoài, dữ liệu thường được truyền theo những đơn vị lớn hơn nhiều so với
word và được gọi là khối.




<b>Phương thức truy cập </b>


Đây là một trong những yếu tố rõ nhất giúp phân biệt các kiểu bộ nhớ. Có bốn loại
phương thức truy cập:


Truy cập tuần tự: Bộ nhớ được tổ chức thành các đơn vị dữ liệu gọi là bản ghi. Việc
truy cập phải được thực hiện theo một dãy tuyến tính cụ thể. Thơng tin địa chỉ được lưu
trữ được dùng để phân tách các bản ghi và hỗ trợ q trình tìm kiếm lấy thơng tin. Một
bộ phận đọc/ghi dùng chung được sử dụng. Bộ phận này phải được di chuyển từ vị trí
hiện thời của nó đến vị trí được u cầu, qt qua và từ chối các bản ghi trung gian. Do
đó, thời gian để truy cập một bản ghi tùy ý biến đổi khá cao. Các đơn vị băng từ, được
thảo luận trong chương 5, là các đơn vị có dạng truy cập tuần tự.



Truy cập trực tiếp: Cũng như với truy cập tuần tự, truy cập trực tiếp bao gồm việc
dùng chung một bộ phận đọc/ghi. Tuy nhiên, các khối hay bản ghi riêng lẻ có một địa
chỉ duy nhất dựa trên vị trí vật lý. Việc truy cập được thực hiện thông qua truy cập trực
tiếp cộng với tìm kiếm tuần tự, đếm, hay chờ để đến được vị trí cuối cùng. Một lần nữa,
thời gian truy cập là biến đổi. Các đơn vị đĩa được trình bày trong chương 5 là các đơn vị
truy cập trực tiếp.


Truy cập ngẫu nhiên: Mỗi vị trí khả định địa chỉ trong bộ nhớ có motä cơ chế định địa
chỉ vật lý duy nhất. Thời gian truy cập một vị trí cho trước độc lập với dãy các truy cập
trước đó và khơng thay đổi. Do đó, bất kỳ một vị trí nào cũng có thể được chọn ngẫu
nhiên và được định địa chỉ cũng như truy cập trực tiếp. Các hệ thống bộ nhớ chính được
truy cập ngẫu nhiên.


</div>
<span class='text_page_counter'>(51)</span><div class='page_container' data-page=51>

phương thức truy cập ngẫu nhiên thông thường, mỗi vị trí nhớ có cơ chế định địa chỉ
riêng, và thời gian lấy thông tin không đổi, độc lập với vị trí hoặc khn dạng truy cập
trước đó. Bộ nhớ cache, được đề cập đến trong mục 4.3 có thể tận dụng cách truy cập
liên kết này.


<b>Hiệu suaát </b>


Đứng trên quan điểm người sử dụng, hai đặc trưng quan trọng nhất của bộ nhớ là dung
lượng và hiệu suất vận hành. Có ba tham số hiệu suất được sử dụng:


<b>Thời gian truy cập:</b> Đối với bộ nhớ truy cập ngẫu nhiên, đây là thời gian cần thiết để
thực hiện một thao tác đọc hay ghi, tức là thời gian từ lúc một địa chỉ có mặt trong bộ
nhớ cho đến lúc dữ liệu được lưu trữ xong hoặc đã sẵn sàng để sử dụng. Với bộ nhớ truy
cập không ngẫu nhiên, thời gian truy cập là thời gian cần để định vị bộ phận đọc/ghi tại
vị trí được yêu cầu.



<b>Thời gian chu kỳ bộ nhớ: </b>Khái niệm này chủ yếu được áp dụng cho bộ nhớ truy cập


ngẫu nhiên và bao gồm thời gian truy cập cộng với bất kỳ thời gian phụ thêm nào được
yêu cầu trước khi truy cập thứ hai có thể được thực hiện. Phần thời gian phụ thêm này
có thể được yêu cầu nhằm phát sinh dữ liệu nếu chúng được đọc một cách không loại
trừ.


<b>Tốc độ truyền: </b>Đây là tốc độ truyền dữ liệu vào/ra một đơn vị bộ nhớ. Với bộ nhớ
truy cập ngẫu nhiên, giá trị này bằng 1/(Thời gian Chu kỳ). Với bộ nhớ truy cập không
ngẫu nhiên, quan hệ sau đây được duy trì:


TN = TA + N/R


Trong đó:


<b>TN</b>= thời gian trung bình để đọc/ghi<b> N </b>bit


<b>TA</b>= thời gian truy cập trung bình


<b>N </b>= số caùc bit


<b>R</b> = tốc độ truyền, theo đơn vị bit/giây (bps)


<b>Kiểu vật lý </b>


</div>
<span class='text_page_counter'>(52)</span><div class='page_container' data-page=52>

<b>Đặc tính vật lý </b>


Nhiều đặc tính vật lý của sự lưu trữ dữ liệu là rất quan trọng. Trong một bộ nhớ khả
biến, thông tin phân rã một cách tự nhiên hoặc bị mất đi khi nguồn điện bị tắt. Trong
một bộ nhớ bất biến, thông tin một khi đã được ghi sẽ được lưu giữ mà khơng bị thối


hóa. Các bộ nhớ có bề mặt từ hóa thuộc loại bất biến. Bộ nhớ bán dẫn có thể khả biến
hoặc bất biến. Bộ nhớ khơng thể xóa thì khơng thể thay đổi được, ngoại trừ việc phá
hủy đơn vị lưu trữ. Bộ nhớ bán dẫn kiểu này được biết đến với tên gọi <i>bộ nhớ chỉ đọc </i>


(ROM).


<b>Cách tổ chức </b>


Ở đây là cách sắp xếp vật lý các bit để tạo thành các word. Cách sắp xếp hiển nhiên
không phải lúc nào cũng được sử dụng, như sẽ được đề cập đến ở phần tiếp theo.


<b> Sự phân cấp bộ nhớ </b>


Một sự phân cấp bộ nhớ kiểu mẫu được chỉ ra trên hình 4.1. Khi chúng ta đi từ trên
xuống trong sơ đồ phân cấp này, những sự kiện sau sẽ xảy ra:


Giảm phí tổn cho một bit
Tăng dung lượng


Tăng thời gian truy cập


Giảm tần số truy cập bộ nhớ bởi CPU


</div>
<span class='text_page_counter'>(53)</span><div class='page_container' data-page=53>

<b>Hình 4.1 Sự phân cấp bộ nhớ </b>


Nếu bộ nhớ được tổ chức theo các mục từ (a) đến (c) ở trên, và dữ liệu cùng với chỉ thị
có thể được phân phối qua bộ nhớ theo (d), thì một cách trực quan cho thấy sơ đồ này sẽ
làm giảm phí tổn tồn thể trong khi vẫn duy trì một mức độ hiệu suất cho trước. Chúng
ta sẽ đưa ra một ví dụ đơn giản để minh họa cho điều này.



</div>
<span class='text_page_counter'>(54)</span><div class='page_container' data-page=54>

<b>Hình 4.2 Sự vận hành của một bộ nhớ hai cấp đơn giản </b>


Giả sử rằng CPU có truy cập đến hai mức bộ nhớ. Mức 1 gồm 1000 word và thời gian
truy cập là 1m s. Mức 2 gồm 100000 word và có thời gian truy cập 10m s. Giả sử nếu
một word được truy cập ở mức 1 thì CPU truy cập nó trực tiếp. Nếu nó ở mức 2, word đó
trước hết được truyền sang mức 1 và sau đó được truy cập bởi CPU. Để đơn giản, chúng
ta bỏ qua thời gian cần thiết để CPU xác định xem word là ở mức 1 hay 2. Hình 4.2 cho
thấy thời gian truy cập tổng cộng trung bình là một hàm phần trăm thời gian trong
trường hợp word yêu cầu đã ở trong mức 1. Như chúng ta có thể quan sát thấy, với
những phần trăm cao trong truy cập mức 1, thời gian truy cập tổng cộng trung bình gần
hơn nhiều so với mức 2.



<b> </b>


<b>4.2 Bộ nhớ chính bán dẫn</b>



<b>Các kiểu bộ nhớ bán dẫn truy cập ngẫu nhiên </b>


Tất cả các kiểu bộ nhớ được khảo sát trong phần này thuộc về loại truy cập ngẫu nhiên.
Tức là từng word nhớ được truy cập trực tiếp qua luận lý định địa chỉ.


</div>
<span class='text_page_counter'>(55)</span><div class='page_container' data-page=55>

Bộ nhớ chỉ đọc (ROM)


Bộ nhớ chỉ đọc khả trình (PROM)


Bộ nhớ chỉ đọc khả trình có thể xóa được (EPROM)
Bộ nhớ flash


Bộ nhớ chỉ đọc khả trình có thể xóa được về mặt điện tử (EEPROM)



Trong số các kiểu bộ nhớ nói trên, RAM là loại bộ nhớ phổ biến nhất. Một đặc tính
nổi bật của RAM là có thể đọc dữ liệu từ bộ nhớ và dễ dàng, nhanh chóng ghi dữ liệu
mới vào bộ nhớ. Cả việc đọc và ghi đều được thực hiện thông quaviệc sử dụng tín hiệu
điện tử.


Một đặc tính nổi bật khác của RAM là khả biến. Bộ nhớ RAM phải luôn được cung
cấp một nguồn điện không đổi. Nếu nguồn điện bị ngắt, dữ liệu sẽ mất đi. Vì lý do đó,
RAM chỉ có thể dùng làm nơi lưu trữ dữ liệu tạm thời.


Cơng nghệ RAM được chia thành hai nhóm: tĩnh và động. Một RAM động được chế
tạo với các ơ lưu trữ dữ liệu như cách tích điện trong tụ điện. Sự tồn tại hay biến mất
của điện tích trong tụ điện được thơng dịch thành các giá trị nhị phân 1 và 0. Do các tụ
điện có khuynh hướng tự nhiên là giải điện, các RAM động cần sự làm tươi điện tích
theo chu kỳ để duy trì dữ liệu. Trong một RAM tĩnh, các giá trị nhị phân được lưu trữ
bằng cách sử dụng các cấu hình cổng luận lý mạch lật truyền thống. Một RAM tĩnh sẽ
lưu giữ liệu cho đến khi nào nguồn điện còn được cung cấp cho nó.


Cả RAM tĩnh và động đều khả biến. Một ô nhớ động đơn giản hơn một ô nhớ tĩnh.
Do vậy, một RAM động trù mật hơn và ít tiền hơn một RAM tĩnh tương ứng. Mặt khác,
RAM động đòi hỏi sự hỗ trợ làm tươi mạch. Với những lượng bộ nhớ lớn hơn, phí tổn cố
định cho việc làm tươi mạch được đền bù nhiều hơn phí tổn giành cho các DRAM. Như
vậy RAM động có khuynh hướng thích hợp cho các yêu cầu về bộ nhớ lớn. Điểm cuối
cùng chúng ta cần lưu ý là RAM tĩnh nói chung nhanh hơn RAM động.


Trong mối tương phản rõ nét với RAM là <i>bộ nhớ chỉ đọc </i>(ROM). ROM bao gồm một
khuôn mẫu bền vững của dữ liệu khơng thể thay đổi. Trong khi chúng ta có thể đọc dữ
liệu từ ROM, việc ghi vào ROM dữ liệu mới không thể thực hiện được. Một ứng dụng
của ROM là vi lập trình. Ngồi ra các ứng dụng khác của ROM gồm:



</div>
<span class='text_page_counter'>(56)</span><div class='page_container' data-page=56>

Các bảng hàm


Với một u cầu có kích thước khiêm tốn, lợi điểm của ROM là dữ liệu được lưu trữ
bền vững trong bộ nhớ chính và không cần phải tải lên từ một thiết bị lưu trữ phụ.
Một ROM được tạo ra như một chip mạch tích hợp thơng thường với dữ liệu được đưa
vào trong chip trong quá trình in mạch. Điều này dẫn đến hai bài toán:


Bước chèn dữ liệu có chi phí tương đối lớn, cho dù một hay hàng ngàn bản sao của
một ROM cụ thể sẽ được in ra.


Lỗi trong q trình sản xuất là khơng thể chấp nhận được. Chỉ cần một bit bị sai, toàn
bộ lô ROM phải bị hủy bỏ.


Khi chỉ cần một lượng tương đối nhỏ ROM với nội dung bộ nhớ đặc biệt, một lựa
chọn ít tốn kém hơn là ROM khả trình (PROM). Giống như ROM, PROM khơng khả
biến và chỉ có thể ghi được đúng một lần. Với PROM, quá trình ghi được thực hiện một
cách điện tử và do một nhà cung cấp đảm nhiệm chứ không nhất thiết phải là nhà sản
xuất chip ban đầu. Các trang thiết bị đặc biệt sẽ được sử dụng cho quá trình ghi hay "lập
trình". PROM mang lại sự linh hoạt và tiện lợi trong khi ROM vẫn thu hút các đơn đặt
hàng có số lượng lớn.


Một biến thể khác của bộ nhớ chỉ đọc là bộ nhớ hầu như chỉ đọc. Loại bộ nhớ này có
ích cho các ứng dụng trong đó thao tác đọc thường xuyên hơn thao tác ghi, vốn cần đến
khả năng lưu trữ bất biến. Có ba dạng phổ biến của bộ nhớ hầu như chỉ đọc là EPROM,
EEPROM và bộ nhớ flash.


Bộ nhớ chỉ đọc khả trình xóa được bằng quang học (EPROM) được đọc/ghi một cách
điện tử như với PROM. Tuy nhiên, trước một thao tác ghi, tất cả các ô lưu trữ phải được
xóa về trạng thái khởi động ban đầu bằng cách đưa chip đã đóng gói qua nguồn bức xạ
tia cực tím. Q trình xóa này có thể được thực hiện lập đi lập lại, mỗi lần xóa mất


khoảng 20 phút. Do vậy, EPROM có thể thay đổi được nhiều lần và cũng như với ROM
hay PROM, nó có thể lưu trữ nhiều loại dữ liệu khác nhau. EPROM thường đắt tiền hơn
PROM nhưng có lợi thế ở khả năng cập nhật nhiều lần.


</div>
<span class='text_page_counter'>(57)</span><div class='page_container' data-page=57>

Dạng mới nhất của bộ nhớ bán dẫn là bộ nhớ chớp (bộ nhớ này được đặt tên như vậy
do tốc độ tái lập trình khá cao của nó). Được giới thiệu lần đầu tiên vào giữa thập niên
80, bộ nhớ chớp đóng vai trị trung gian giữa EPROM và EEPROM cả về giá cả lẫn
chức năng. Giống như EEPROM, bộ nhớ chớp sử dụng cơng nghệ xóa điện tử. Một bộ
nhớ chớp có thể được xóa trong vài giây, nhanh hơn nhiều so với EPROM. Ngoài ra,
chúng ta có thể xóa chỉ các khối nhớ cần thiết hơn là tồn bộ chip. Tuy nhiên, bộ nhớ
chớp khơng cung cấp khả năng xóa ở mức byte. Giống như EPROM, bộ nhớ chớp chỉ sử
dụng một transistor cho mỗi bit, và vì thế đạt được độ trù mật cao (so với EEPROM) của
EPROM.


<b>Tổ chức </b>


Phần tử cơ sở của một bộ nhớ bán dẫn là ô nhớ. Mặc dù có nhiều cơng nghệ điện tử
được sử dụng, tất cảc các ơ nhớ bán dẫn đều có chung một số tính chất sau:


Chúng thể hiện hai trạng thái ổn định (hay bán ổn định) có thể dùng để biểu thị hai
giá trị 1 và 0.


Chúng có khả năng cho phép ghi (ít nhất một lần) để thiết lập trạng thái.
Chúng có khả năng cho phép đọc để lấy trạng thái.


Hình 4.3 mơ tả hoạt động của một ơ nhớ.


<b>Hình 4.3 Thao tác ơ nhớ </b>


</div>
<span class='text_page_counter'>(58)</span><div class='page_container' data-page=58>




<b>4.3 Bộ nhớ cache</b>



<b>Nguyên lý </b>


Bộ nhớ cache được thiết kế với ý định mang lại bộ nhớ có tốc độ xấp xỉ tốc độ của bộ
nhớ nhanh nhất hiện có, đồng thời cung cấp một kích thước bộ nhớ lớn với phí tổn ít hơn
so với các loại bộ nhớ bán dẫn. Khái niệm về bộ nhớ cache được trình bày trên hình 4.4
và 4.5. Bộ nhớ cache chứa bản sao của một phần bộ nhớ chính. Khi CPU cố gắng đọc
một word từ bộ nhớ, word này sẽ được kiểm tra xem có trong cache hay khơng. Nếu có,
word đó sẽ được cung cấp ngay cho CPU. Trong trường hợp ngược lại, một khối bộ nhớ
chính, bao gồm một lượng cố định các word sẽ được đọc vào trong cache và sau đó
word đó sẽ được cung cấp cho CPU. Do có hiện tượng tham chiếu cục bộ, khi một khối
dữ liệu được lấy vào trong cache để đáp ứng một tham chiếu đơn lẻ, có nhiều khả năng
các tham chiếu kế tiếp sẽ là các word khác trong cùng một khối.


</div>
<span class='text_page_counter'>(59)</span><div class='page_container' data-page=59>

<b>Hình 4.5 Tổ chức tiêu biểu của bộ nhớ cache </b>


Hình 4.4 thể hiện mối quan hệ giữa một hệ thống cache và bộ nhớ chính. Hình 4.5 mơ
tả một tổ chức tiêu biểu của bộ nhớ cache. Bộ nhớ chính gồm đến 2n<sub> word khả định địa </sub>


chỉ, với mỗi word có một địa chỉ duy nhất n bit. Do yêu cầu ánh xạ, bộ nhớ này được
xem như gồm một số các khối có độ dài cố định K word. Tức là chúng ta có M = 2n<sub>/K </sub>


khối. Bộ nhớ cache gồm C khe K word, và số các khe, hay đường, nhỏ hơn đáng kể so
với số khối bộ nhớ chính (C << M). Tại một thời điểm bất kỳ, ln có một tập con gồm
các khối nhớ thường trú trong các khe của cache. Nếu một word trong một khối bộ nhớ
được đọc, khối đó sẽ được chuyển vào một trong các khe của cache. Do số khối nhiều
hơn số khe, một khe có thể khơng được giành cho một khối trong thời gian lâu dài. Vì lý
do đó, mỗi khe có một thẻ cho biết khối nào đang được lưu trữ. Thẻ thường là một phần


của địa chỉ bộ nhớ chính của khối đang được giữ trong khe. Hình 4.6 thể hiện cấu trúc
cache/ bộ nhớ chính.


</div>
<span class='text_page_counter'>(60)</span><div class='page_container' data-page=60></div>
<span class='text_page_counter'>(61)</span><div class='page_container' data-page=61>

<b>Hình 4.7 Thao tác đọc cache </b>
<b> </b>


<b>4.4 Bài tập và câu hỏi củng cố bài học</b>



<b>Bài tập số 1: </b>Giải thích lý do tại sau RAM truyền thống được tổ chức từng bit một
trên mỗi chip, trong khi đó ROM thường được tổ chức với nhiều bit trên một chip.


<b>Bài tập số 2: </b>Xét một RAM động có chu kỳ làm tươi 64 lần trong một micro giây.


Mỗi thao tác làm tươi cần 150 nano giây, một chu kỳ bộ nhớ cần 250 nano giây. Số
phần trăm tổng thời gian thao tác bộ nhớ phải bỏ ra để làm tươi là bao nhiêu?


</div>
<span class='text_page_counter'>(62)</span><div class='page_container' data-page=62>

<b>Bài tập số 4: </b>Xét một bộ vi xử lý 32 bit có cache liên kết 4 đường 16K trên chip. Giả
sử rằng cache có kích thước đường gồm 4 word 32 bit. Vẽ sơ đồ khối của cache này để
chỉ ra tổ chức của nó và cách thức các trường địa chỉ khác nhau được sử dụng để xác
định cache hit/cache miss. Vị trí của word tại vị trí nhớ ABCDE8F8 được ánh xạ vào
cache là bao nhiêu?


<b>Bài tập số 5: </b>Cho trước các đặc tả sau đối với một cache bộ nhớ ngoại: liên kết theo
bộ 4 đường, kích thước đường 2 word 16 bit, có khả năng quản lý tổng cộng 4K word 32
bit từ bộ nhớ chính, sử dụng với bộ xử lý 16 bit cho ra địa chỉ 24 bit. Thiết kế cấu trúc
cache với tất cả các thơng tin nói trên và chỉ ra cách thức nó thơng dịch các địa chỉ của
bộ xử lý.


<b>chương </b>

<b>5</b>




<b>B</b>

<b>ộ nhớ ngồi của máy tính</b>



<b> 5.1 Đĩa từ </b>
<b> 5.2 RAID </b>


<b> 5.3 Bài tập và câu hỏi củng cố bài học </b>


<b>5.1 ĐĨA TỪ</b>



Đĩa từ là một tấm kim loại/nhựa hình trịn có bề mặt phủ vật liệu từ tính. Dữ liệu
được ghi lên/đọc ra từ đĩa thông qua một thiết bị gọi là đầu đọc. Trong khi có thao tác
đọc/ghi, đầu đọc đứng yên và tấm đĩa quay liên tục bên dưới nó.


</div>
<span class='text_page_counter'>(63)</span><div class='page_container' data-page=63>

Cơ chế đọc dựa trên dòng điện trong ống xoắn vốn được sinh bởi sự dịch chuyển từ
trường quanh nó. Khi bề mặt đĩa đi qua dưới đầu đọc, nó sẽ sinh ra một dịng điện có
cùng cực với dịng đã được ghi trước đó.


<b>Tổ chức và định dạng dữ liệu </b>


Đầu đọc là một thiết bị tương đối nhỏ có khả năng đọc/ghi từ/lên một phần của tấm
đĩa quay bên dưới. Điều này dẫn đến việc tổ chức dữ liệu trên đĩa theo dạng một tập
hợp các vòng tròn đồng tâm gọi là các <i>track</i> (rãnh). Mỗi track có cùng độ rộng như đầu
đọc.


Hình 5.1 mơ tả cách sắp xếp này. Các rãnh kề nhau được phân biệt bằng các <i>gap</i>


(khoảng trống), nhờ đó ngăn chặn ở mức tối thiểu các sai sót do sự canh biên khơng
chính xác của đầu đọc hoặc nhiễu của các trường điện từ. Để đơn giản hóa về mặt điện
tử, mỗi track có số bit thơng tin bằng nhau. Do đó dộ trù mật tính theo số bit trên mỗi


inch tuyến tính sẽ tăng lên khi chúng ta đi từ track xa nhất bên ngoài vào đến track gần
nhất bên trong đĩa.


Như đã đề cập đến trong các chương trước, dữ liệu được chuyển đến và đi khỏi đĩa
theo từng khối một. Thơng thường kích thước của một khối dữ liệu nhỏ hơn dung lượng
của track. Cụ thể hơn, dữ liệu được lưu trong các vùng có kích thước khối gọi là <i>sector</i>


</div>
<span class='text_page_counter'>(64)</span><div class='page_container' data-page=64>

<b>Hình 5.1 Tổ chức dữ liệu trên đĩa </b>
<b>Các đặc trưng chính </b>


Những đặc trưng chính của đĩa bao gồm:
-Sự di chuyển của đầu đọc


-Tính khả chuyển của đóa
-Các mặt đóa


-Các tấm đóa


-Cơ chế làm việc của đầu đọc


<b> Sự di chuyển của đầu đọc </b>


</div>
<span class='text_page_counter'>(65)</span><div class='page_container' data-page=65>

ngắn ứng với vị trí của track cần truy cập trên đĩa. Hình 5.2 mơ tả các loại đầu đọc cố
định và khơng cố định.


<b>Hình 5.2 Đầu đọc cố định và không cố định </b>
<b> Tính khả chuyển của đĩa </b>


Bản thân đĩa thường được gắn vào trong một ổ đĩa với một tay đòn, một động cơ quay
đĩa cũng như các mạch điện tử cần thiết cho việc nhập/xuất dữ liệu nhị phân. <i>Đĩa không </i>


<i>thể tháo rời</i> được gắn vĩnh viễn vào trong ổ đĩa trong khi <i>đĩa có thể tháo rời</i> có thể lấy
ra và thay thế bằng một ổ đĩa khác. Lợi ích của loại đĩa có thể tháo rời là khả năng cung
cấp một lượng dữ liệu khơng có giới hạn trên một hệ thống giới hạn các ổ đĩa. Hơn nữa
đĩa đó cịn có thể di chuyển từ máy tính n ày sang máy tính khác.


<b>Các mặt đóa </b>


Hầu hết các đĩa đều có hai mặt trừ một số đĩa loại cũ chỉ có một mặt.


</div>
<span class='text_page_counter'>(66)</span><div class='page_container' data-page=66>

Một số ổ đĩa cho phép xếp chồng nhiều đĩa theo chiều thẳng đứng với nhiều tay đòn
được cung cấp. Các tấm đĩa như thế được tổ chức theo đơn vị disk pack (gói đĩa).


<b>Cơ chế làm việc của đầu đọc </b>


Cơ chế làm việc của đầu đọc trong thao tác đọc/ghi cho phép phân loại đĩa rất rõ ràng.
Chúng ta có ba cơ chế như sau:


<b>Cơ chế 1:</b> giữ đầu đọc ở một khoảng cách cố định với bề mặt đĩa


<b>Cơ chế 2: </b>cho phép tiếp xúc về mặt vật lý giữa đầu đọc với bề mặt đĩa


<b>Cơ chế 3: </b>khoảng cách giữa đầu đọc với bề mặt đĩa có thể thay đổi trong quá trình
đọc/ghi.


Để hiểu rõ cơ chế 3 nói trên, chúng ta cần tìm hiểu về mối quan hệ giữa độ trù mật
dữ liệu và kích thước của khối khơng khí trống giữa đầu đọc và bề mặt đĩa bên dưới nó.
Đầu đọc phải sinh ra một trường điện từ đủ lớn để đọc/ghi một cách chính xác. Đầu
đọc càng hẹp thì nó càng phải ở gần bề mặt đĩa hơn để hoạt động. Đầu đọc hẹp hơn dẫn
đến bề rộng track nhỏ hơn và do vậy độ trù mật dữ liệu tăng lên rất nhiều. Tuy nhiên,
khi đầu đọc càng gần bề mặt đĩa, nguy cơ pha tạp và khơng chính xác về dữ liệu càng


lớn. Nhằm đẩy kỹ thuật đĩa lên một bước xa hơn, người ta đã chế tạo ra ổ đĩa


Winchester. Các đầu đọc Winchester được sử dụng trong các ổ đĩa gần như khơng có
tác nhân tạp chất. Chúng được thiết kế để hoạt động gần hơn với bề mặt đĩa nếu so với
các đầu đọc kiểu cũ, do đó cho phép làm tăng độ trù mật của dữ liệu trên đĩa. Đầu đọc
có dạng một lá khí động học nằm trên bề mặt đĩa khi đĩa không chuyển động. p suất
khơng khí sinh bởi đĩa xoay trịn đủ làm cho lá rút lên khỏi bề mặt đĩa. Phần hệ thống
khơng tiếp xúc với đĩa có thể được chế tạo để sử dụng với những đầu đọc kiểu mới này.


<b>Thời gian truy cập đĩa </b>


</div>
<span class='text_page_counter'>(67)</span><div class='page_container' data-page=67>

để định vị dữ liệu cần đọc/ghi. Khi đầu đọc đã ở đúng vị trí, thao tác đọc/ghi sẽ được
thực hiện ngay khi sector di chuyển dưới đầu đọc.




<b>5.2 RAID</b>



Như đã thảo luận ở các phần trước, tốc độ cải tiến hiệu suất lưu trữ trên thiết bị
ngoài kém hơn so với tốc độ cải tiến cho bộ xử lý và bộ nhớ chính. Sự khơng đồng bộ
này dẫn đến việc hệ thống lưu trữ đĩa trở thành chủ đề chính trong sự cải tiến hiệu suất
vận hành của tồn bộ hệ thống máy tính.


Cũng như với các yếu tố khác có ảnh hưởng đến sự vận hành của máy, các nhà
thiết kế đĩa nhận biết rằng để đạt được sự cải tiến về mặt hiệu suất, các thành phần cần
phải được phát triển song song. Trong trường hợp lưu trữ đĩa, điều này dẫn đến sự phát
triển của mảng các đĩa hoạt động độc lập và song song. Với nhiều đĩa, những yêu cầu
nhập/xuất riêng lẻ có thể được quản lý song song nếu như dữ liệu yêu cầu được lưu trên
các đĩa tách biệt. Hơn nữa, một yêu cầu nhập/xuất đơn lẻ có thể được thực hiện song
song nếu khối dữ liệu cần truy cập phân bố trên nhiều đĩa.



Bằng sự sử dụng hệ thống nhiều đĩa, chúng ta có nhiều cách thức tổ chức đĩa tận
dụng tính thừa dữ liệu nhằm cải thiện độ tin cậy của hệ thống. Tuy nhiên, điều này có
thể gây khó khăn cho việc phát triển các sơ đồ cơ sở dữ liệu có ích trên một số nền tảng
và hệ điều hành. Để giải quyết vấn đề này, hiện nay đã có một sơ đồ chuẩn hóa cho
thiết kế cơ sở dữ liệu đa đĩa gọi là RAID (Redundant Array of Independent Disks). Sơ
đồ RAID gồm có sáu mức từ 0 đến 5. Các mức này không tạo thành một quan hệ phân
cấp nhưng định ra những kiến trúc khác nhau có chung các đặc điểm sau:


RAID là tập hợp các ổ đĩa vật lý được nhìn từ hệ điều hành như một ổ đĩa logic đơn.
Dữ liệu được phân bố trên mảng các ổ đĩa vật lý.


Dung lượng đĩa dư thừa được sử dụng để lưu trữ thông tin chẵn lẻ nhằm bảo đảm khả
năng phục hồi dữ liệu trong trường hợp có hư hỏng về đĩa.


</div>
<span class='text_page_counter'>(68)</span><div class='page_container' data-page=68>

có dung lượng lớn bằng nhiều ổ đĩa có dung lượng nhỏ hơn, theo cách thức cho phép
truy cập đồng thời đến dữ liệu từ nhiều ổ đĩa, nhờ vậy cải thiện hiệu suất nhập/xuất và
cho phép gia tăng từng bước về dung lượng một cách dễ dàng hơn.


Sự đóng góp nổi bật nhất của đề xuất RAID là giải quyết có hiệu quả u cầu về
tính dư thừa. Mặc dù cho phép nhiều đầu đọc hoạt động cùng lúc có thể dẫn đến tốc độ
truyền và nhập/xuất dữ liệu cao hơn, việc sử dụng nhiều thiết bị cũng làm gia tăng xác
suất hư hỏng. Để đền bù cho sự giảm sút độ tin cậy này, RAID sử dụng thông tin chẵn
lẻ đã lưu trữ trong việc phục hồi dữ liệu do đĩa hỏng.


Hình 5.2 và 5.3 cho thấy sáu sơ đồ RAID hỗ trợ yêu cầu về dữ liệu với bốn đĩa và
không triển khai tính dư thừa dữ liệu. Nó chỉ ra sự khái quát về dữ liệu của người sử
dụng và dữ liệu thừa, cũng như các yêu cầu lưu trữ quan hệ của nhiều mức khác nhau.


</div>
<span class='text_page_counter'>(69)</span><div class='page_container' data-page=69>

<b>Hình 5.3 Các mức RAID (tiếp theo hình 5.2) </b>


<b> </b>


</div>
<span class='text_page_counter'>(70)</span><div class='page_container' data-page=70>

<b>Bài tập số 1: </b>Chúng ta sử dụng các ký hiệu sau cho một hệ thống đĩa:
ts = thời gian tìm kiếm, thời gian trung bình để định vị đầu đọc/ghi trên track.


R = tốc độ quay của đĩa theo số vòng/giây
N = số bit trên một sector


M = dung lượng của một track theo bit
TA = thời gian truy cập một sector.


Hãy phát triển công thức cho TA theo các tham số còn lại.


<b>Bài tập số 2: </b>Tốc độ truyền dữ liệu của một đơn vị băng từ 9 track là bao nhiêu nếu
tốc độ băng là 120 inch/giây và độ trù mật của băng là 1600 bit tuyến tính/inch?


<b>Bài tập số 3: </b>Rõ ràng là việc tạo dải đĩa có thể cải tiến tốc độ truyền dữ liệu khi kích
thước của dải nhỏ hơn kích thước nhập/xuất u cầu. Ngồi ra chúng ta cũng biết rằng
RAID 0 cung cấp hiệu năng cải tiến so với một đĩa đơn lớn vì nhiều yêu cầu nhập/xuất
có thể quản lý song song. Tuy nhiên, trong trường hợp này liệu việc tạo dải đĩa có cần
thiết hay không? Tức là, liệu việc tạo dải đĩa có cải tiến tốc độ nhập/xuất yêu cầu so
với một mảng đĩa khơng có tạo dải?


<b>Một số địa chỉ liên quan đến kiến trúc máy tính</b>


Web Site for the Books of William Stallings
UW-Madison Computer Architecture Group
CS : 211 Computer Architecture


</div>


<!--links-->

×