Tài liệu giảng dạy Kiến trúc máy tính

Mục đích: Giới thiệu tổng quan về lịch sử phát triển của máy tính, cách phân loại

máy tính hiện nay. Cách để đánh giá hiệu suất của máy tính. Sau đó trình bày biểu

diễn số nguyên không dấu và có dấu, các phép tính cơ bản trên số nguyên này. Trình

bày cách biểu diễn số với dấu chấm động, biểu diễn kí tự bằng bảng mã ASCII, bảng

mã UNICODE.

1.1 TỔNG QUAN

Sự ra đời của máy vi tính tạo cuộc cách mạng vĩ đại trong lịch sử văn minh nhân

loại. Hệ thống máy tính ngày nay có thể giúp chúng ta có những bước phát triển

mạnh mẽ, nâng cao năng suất lao động, tri thức cũng như khoa học công nghệ. Một

cách tổng thể, lịch sử phát triển của máy tính trải qua các giai đoạn sau:

 Thế hệ máy tính thứ nhất (1946 – 1957): thế hệ này được đặc trưng bằng kỹ

thuật ống chân không (vacuum tube). Chiếc máy vi tính đầu tiên ENIAC (Electronic

Numerical Integrator And Computer) do Giáo sư Mauchly và học trò của ông Eckert

tại đại học pennsylvania bắt đầu thiết kế vào năm 1943 và được hoàn thành vào năm

1946. Đây là một máy vi tính khổng lồ với chiều dài 20 mét, cao 2,8 mét, năng lực

tính toán là 5000 phép cộng trong một giây.

Giáo sư toán học John Von Neumann lần đầu đưa ra khái niệm chương trình

được lưu trữ (stored-program concept) vào năm 1945. Đến năm 1946, ông cùng các

đồng nghiệp thiết kế máy tính IAS tại Princeton Institute for Advanced Studies. Máy

tính này gồm các thành phần: bộ nhớ dùng để lưu trữ chung cho cả dữ liệu và lệnh,

bộ số học – luận lý (ALU) thực hiện phép toán trên dữ liệu nhị phân, bộ điều khiển

được dùng để điều khiển thực thi lệnh trong bộ nhớ và hoạt động của hệ thống

nhập/xuất. Đây là một ý tưởng nền tảng cho các máy tính hiện đại ngày nay. Máy

tính này còn được gọi là máy tính Von Neumann.

 Thế hệ thứ hai (1958-1964): thế hệ này bắt đầu bằng sự thay thế ống chân

không bằng transistor với ưu điểm là nhỏ hơn, giá thành rẻ hơn, tỏa nhiệt ít hơn.

Transistor được phát minh bởi công ty Bell Labs vào năm 1947 nhưng đến cuối thập

niên 50, máy tính thương mại dùng transistor mới xuất hiện trên thị trường. Ngoài ra,

ở thế hệ này các thành phần quan trọng trong máy tính như: bộ số học – luận lý, bộ

điều khiển cũng được thiết kế phức tạp hơn. Một số ngôn ngữ cấp cao được dùng để

lập trình như: FORTRAN năm 1956, COBOL năm 1959, ALGOL năm 1960) và

phần mềm hệ thống (system software) trong máy tính cũng được giới thiệu.

 Thế hệ thứ ba (1965-1971): Thế hệ này bắt đầu bằng sự xuất hiện của mạch

tích hợp (integrated circuit ). Vi mạch này cho phép đặt một số transistor trên một

chip đơn. Các mạch tích hợp với mật độ thấp (SSI: Small Scale Integration) có thể

chứa vài chục linh kiện và mạch tích hợp với mật độ trung bình (MSI: Medium Scale

Integration) chứa hàng trăm linh kiện. Do những cải tiến lớn về công nghệ nên các2

máy tính của thế hệ này trở nên nhỏ hơn, nhanh hơn và rẽ hơn các máy tính thế hệ

trước đó. Hệ điều hành và khả năng đa lập trình cũng đã xuất hiện.

 Thế hệ thứ tư (1972 – ngày nay): thế hệ này đánh dấu bằng tiến bộ của kỹ

thuật mạch tích hợp. Với sự giới thiệu của mạch tích hợp mật độ cao (LSI: Large

Scale Integration) chứa hàng ngàn linh kiện được đặt trên một chip đơn, mạch tích

hợp mật độ rất cao (VLSI: Very Large Scale Integration) có thể đạt hơn 10 ngàn linh

kiện trên một chip và mạch tích hợp với mật độ siêu lớn (ULSI: Ultra Large Scale

Integration) có thể chứa hơn một triệu linh kiện. Đặc biệt thế hệ này có sự xuất hiện

của bộ nhớ bán dẫn (semiconductor memory) và bộ vi xử lý (microprocessor). Máy

tính cá nhân PC (Personal Computer) đầu tiên đã ra đời như Kenback-1. Các kỹ

thuật cải tiến tốc độ xử lý của máy tính không ngừng được phát triển: kỹ thuật ống

dẫn, kỹ thuật vô hướng, xử lý song song

Ngày nay kỹ thuật máy tính được sử dụng trong nhiều lĩnh vực khác nhau từ các

thiết bị nhúng trong ngôi nhà thông minh, điện thoại đến những các siêu máy tính

(supercomputer). Trong các thiết bị này, nền tảng phần cứng tuy có khác nhau nhưng

một cách tổng quan có thể phân loại máy tính thành các loại như sau:

Máy tính cá nhân (Personal computer - PC): đây là loại được sử dụng phổ

biến nhất. Máy tính cá nhân được thiết kế để sử dụng cho mục đích có nhân có hiệu

suất tương đối tốt với chi phí thấp.

Máy chủ (Server): đây là loại máy tính hiện đại bao gồm các loại máy tính

lớn (mainframes, minicomputers và supercomputers) và chỉ được truy cập thông qua

mạng. Server thực hiện các luồng công việc lớn như: các ứng dụng tính toán khoa

học và kỹ thuật hoặc xử lý rất nhiều công việc như một Web server lớn. Mặc dù

không được gọi là supercomputer, nhưng các trung tâm dữ liệu (datacenter) trên

internet được dùng bởi các công ty lớn như eBay hay Google chứa hàng ngàn bộ vi

xử lý với bộ nhớ chính có dung lượng terabyte (1TB = 1024 GB) và hệ thống lưu trữ

lên đến petabyte (1PB = 1024 TB). Những hệ thống này bao gồm nhiều cụm

(cluster) máy tính lớn.

Máy tính nhúng (Embedded computer): được ứng dụng rộng lớn nhất trong

hầu hết các lĩnh vực. Loại này bao gồm các vi xử lý gắn trong xe hơi, hệ thống xử lý

trong điện thoại, các hệ thống xử lý trong video game hay tivi và hệ thống vi xử lý

trong máy bay hay tàu thủy hiện đại. Hệ thống nhúng này được thiết kế để chạy một

ứng dụng hoặc một tập các ứng dụng có liên quan, được tích hợp với phần cứng và

được xem như một hệ thống đơn.

Tài liệu giảng dạy Kiến trúc máy tính trang 1

Trang 1

Tài liệu giảng dạy Kiến trúc máy tính trang 2

Trang 2

Tài liệu giảng dạy Kiến trúc máy tính trang 3

Trang 3

Tài liệu giảng dạy Kiến trúc máy tính trang 4

Trang 4

Tài liệu giảng dạy Kiến trúc máy tính trang 5

Trang 5

Tài liệu giảng dạy Kiến trúc máy tính trang 6

Trang 6

Tài liệu giảng dạy Kiến trúc máy tính trang 7

Trang 7

Tài liệu giảng dạy Kiến trúc máy tính trang 8

Trang 8

Tài liệu giảng dạy Kiến trúc máy tính trang 9

Trang 9

Tài liệu giảng dạy Kiến trúc máy tính trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 101 trang xuanhieu 11980
Bạn đang xem 10 trang mẫu của tài liệu "Tài liệu giảng dạy Kiến trúc máy tính", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Tài liệu giảng dạy Kiến trúc máy tính

Tài liệu giảng dạy Kiến trúc máy tính
n quan đến đặc điểm của hệ thống nhập/xuất: 
 1. Nhiều chương trình dùng bộ xử lý để chia sẻ hệ thống nhập/xuất. 
 2. Hệ thống nhập/xuất thường dùng ngắt (interrupt) để giao tiếp thông tin về thao 
tác nhập/xuất. Ngắt được truyền tới nhân (kernel) và được xử lý bởi hệ điều hành. 
 3. Điều khiển cấp thấp của thiết bị nhập/xuất thì phức tạp, do bởi phải quản lý tập 
hợp các sự kiện đồng thời và những yều cầu cần thực hiện chính xác thường rất chi 
tiết. 
 Dựa vào các đặc điểm trên, hệ điều hành cung cấp một số chức năng như sau: 
 . Hệ điều hành phải đảm bảo chương trình của người dùng chỉ được phép truy 
cập vào một phần của thiết bị nhập/xuất mà người dùng được phép. Ví dụ hệ điều 
hành không cho phép chương trình đọc hoặc ghi một tập tin trên đĩa nếu chương 
trình này không được phép để truy cập tập tin đó. 
 . Hệ điều hành cung cấp các hàm (routine) để xử lý các thao tác cấp thấp của 
thiết bị nhập/xuất. 
 . Hệ điều hành phải xử lý các ngắt được tạo ra bởi thiết bị nhập/xuất, cũng như 
xử lý các ngoại lệ (exception) được tạo ra bởi chương trình. 
 . Đối với tài nguyên nhập/xuất được chia sẻ, hệ điều hành cần cung cấp quyền 
truy cập như nhau cũng như lập thời biểu các truy cập để đảm bảo nâng cao thông 
lượng (throughput) của hệ thống. 
 Để thực hiện các chức năng này, hệ điều hành phải giao tiếp với thiết bị nhập/xuất 
và ngăn chương trình người dùng giao tiếp trực tiếp với thiết bị nhập/xuất. Có ba loại 
giao tiếp: 
 1. Hệ điều hành ra lệnh cho thiết bị ngoại vi. Những lệnh này không chỉ là thao 
tác đọc hoặc ghi mà còn là những thao tác khác được thực hiện trên thiết bị như một 
thao tác dịch chuyển đầu đọc/ghi đến vị trí thích hợp (seek) của đĩa. 
 2. Thiết bị nhập/xuất sẽ thông báo cho hệ điều hành khi thực hiện xong một thao 
tác hoặc có một lỗi xảy ra. 
 3. Dữ liệu được truyền giữa bộ nhớ và thiết bị nhập/xuất. 
84 
 Trong phần tiếp theo, chúng ta sẽ tìm hiểu kỹ hơn về giao tiếp với thiết bị 
nhập/xuất. 
5.5.1 Ra lệnh cho thiết bị nhập xuất 
 Để điều khiển thiết bị nhập/xuất, bộ xử lý phải xác định địa chỉ thiết bị và đưa ra 
một hoặc nhiều từ lệnh. Hai phương pháp được dùng để xác định địa chỉ: thiết bị 
nhập/xuất được ánh xạ vào bộ nhớ (memory-mapped I/O) và tập lệnh nhập/xuất riêng 
(special I/O instructions). 
  Thiết bị nhập/xuất được ánh xạ vào bộ nhớ: một vùng không gian địa chỉ 
được gắn cho thiết bị nhập/xuất. Đọc và ghi vào vùng địa chỉ này tương ứng với giao 
tiếp với thiết bị nhập/xuất. Ví dụ thao tác ghi dữ liệu vào thiết bị nhập/xuất, bộ xử lý 
sẽ đặt địa chỉ và dữ liệu vào bus. Hệ thống bộ nhớ sẽ bỏ qua thao tác này bởi vì địa 
chỉ chỉ định phần không gian bộ nhớ dành cho thiết bị nhập/xuất. trình điều khiển 
thiết bị sẽ thực hiện thao tác bằng cách truyền dữ liệu này tới thiết bị nhập/xuất xem 
như một lệnh. 
Đọc hoặc ghi dữ liệu của một chương trình thường yêu cầu một vài thao tác 
nhập/xuất riêng biệt. Hơn nữa, bộ xử lý phải tham dò trạng thái của thiết bị để xem 
lệnh đưa ra có thực hiện xong hay chưa. Ví dụ, một máy in đơn giản có hai thanh ghi 
nhập/xuất: một thanh ghi trạng thái lưu trạng thái của thiết bị và một thanh ghi dữ 
liệu lưu dữ liệu sẽ được in. Thanh ghi trạng thái chứa một bit đã thực hiện (done bit) 
được thiết lập bởi máy in khi thực hiện in xong một ký tự và một bit lỗi (error bit). 
Bit lỗi này xác định rằng máy in đang kẹt giấy hoặc hết giấy. Mỗi byte dữ liệu cần in 
được đặt vào thanh ghi dữ liệu. Bộ xử lý phải đợi cho đến khi máy in thiết lập bit đã 
thực hiện thì mới đưa ký tự tiếp theo để in. Bộ xử lý cũng cần kiểm tra bit lỗi để xem 
lỗi xảy ra hay không. 
  Tập lệnh nhập/xuất riêng: những lệnh nhập/xuất này sẽ xác định số thiết bị 
và từ lệnh. Bộ xử lý giao tiếp với thiết bị thông qua các sợi dây của bus nhập/xuất. 
Lệnh được truyền trên các đường dữ liệu của bus. Điển hình của máy tính theo kiểu 
này đó là Intel ×86 và IBM 370. 
5.5.2 Giao tiếp với bộ xử lý 
 Thiết bị nhập/xuất ghi thông tin vào thanh ghi trạng thái (status register). Bộ xử lý 
định kỳ kiểm tra thông tin của thanh ghi trạng thái để biết thiết bị có sẳn sàng hay 
không. Quá trình này được gọi là thăm dò (polling). Quá trình này có điểm bất lợi là 
tiêu tốn nhiều thời gian của bộ xử lý do phải thường xuyên thăm dò trạng thái của 
thiết bị. Hơn nữa, tốc độ của bộ xử lý thì nhanh hơn nhiều so với thiết bị nhập/xuất. 
Do hạn chế của quá trình thăm dò nên người ta sử dụng ngắt (interrupt) để thiết bị 
nhập/xuất thông báo với bộ xử lý. Một ngắt nhập/xuất (I/O interrupt) cũng giống như 
một ngoại lệ (exception) với hai khác biệt quan trọng: 
 1. Ngắt nhập/xuất thì không đồng bộ với sự thực thi lệnh. Nghĩa là, ngắt không 
kết hợp với bất kỳ lệnh nào và cũng không cản trở thực thi hoàn thành một lệnh. 
Điều này khác với một ngoại lệ lỗi trang (page fault exception) hay ngoại lệ tràn số 
85 
học (arithmetic overflow). Đơn vị điều khiển sẽ kiểm tra ngắt nhập/xuất chưa được 
giải quyết lúc bắt đầu một lệnh mới. 
 2. Khi một ngắt xảy ra, chúng ta thích truyền thông tin hơn. Như là định danh 
(identity) thiết bị tạo ra ngắt. Hơn nữa, ngắt của mỗi thiết bị nhập/xuất có độ ưu tiên 
khác nhau. Do đó mức độ khẩn cấp kết hợp với mỗi ngắt của thiết bị sẽ khác nhau. 
 Để giao tiếp thông tin với bộ xử lý, như là định danh của thiết bị, hệ thống có thể 
dụng vector ngắt (vectored interrupt) hoặc thanh ghi nguyên nhân (Cause register). 
Khi bộ xử lý nhận một ngắt, thiết bị nhập/xuất gửi địa chỉ vector hoặc trường trạng 
thái (status field) đặt vào thanh ghi nguyên nhân. Hệ điều hành biết được định danh 
của thiết bị gây ra ngắt thì sẽ xem xét tức thì đến thiết bị đó. Mô hình ngắt sẽ loại bỏ 
yêu cầu của bộ xử lý để thăm dò thiết bị và thay vào đó bộ xử lý sẽ tập trung hơn để 
thực thi chương trình. 
5.5.3 Độ ƣu tiên ngắt 
 Để giải quyết với độ ưu tiên khác nhau của thiết bị nhập/xuất, mô hình ngắt đưa ra 
nhiều mức ưu tiên. Thí dụ, hệ điều hành UNIX dùng từ 4 đến 6 mức ưu tiên ngắt. Bộ 
xử lý sẽ xử lý ngắt dựa theo thứ tự của độ ưu tiên của mỗi ngắt. Các ngoại lệ được 
tạo ra bên trong và các ngắt nhập/xuất đều có độ ưu tiên. Các ngoại lệ có độ ưu tiên 
cao hơn các ngắt nhập/xuất bên ngoại. Đối với độ ưu tiên của ngắt nhập/xuất cũng có 
nhiều độ ưu tiên, thiết bị có tốc độ cao thường được kết hợp với độ ưu tiên cao hơn. 
 Thanh ghi trạng thái xác định tác nhân gây ra ngắt đối với máy tính (hình 5.2). 
Nếu bit ngắt được gắn giá trị 0 thì ngắt không cho phép. Mỗi bit của mặt nạ ngắt 
(interrupt mask) tương ứng với mỗi bit của của trường ngắt chờ xử lý (pending 
interrupt) của thanh ghi nguyên nhân. Để thiết lập ngắt, phải gắn giá trị 1 tại vị trí bit 
tương ứng của mặt nạ ngắt. Hệ điều hành đọc trường mã ngoại lệ (exception code) 
của thanh ghi trạng thái: 0 tương ứng với ngắt đã xảy ra, với giá trị khác cho trường 
hợp ngoại lệ. 
 Các bước để xử lý một ngắt: 
 1. Thực hiện phép toán AND giữa mặt nạ ngắt và trường ngắt chờ xử lý để xác 
định tác nhân gây ra ngắt. 
 2. Lựa chọn các ngắt có độ ưu tiên cao hơn. Theo quy ước thì bên trái nhất có độ 
ưu tiên cao nhất. 
 3. Lưu mặt nạ ngắt của thanh ghi trạng thái. 
 4. Thay đổi mặt nạ ngắt để vô hiệu hóa tất cả các ngắt có độ ưu tiên bằng hoặc 
nhỏ hơn. 
 5. Lưu lại trạng thái bộ xử lý cần thiết để xử lý ngắt. 
 6. Để cho phép các ngắt có độ ưu tiên cao hơn, thiết lập bit ngắt của thanh ghi 
nguyên nhân là 1. 
 7. Gọi hàm xử lý ngắt tương ứng. 
 8. Trước khi khôi phục lại trạng thái, thiết lập bit ngắt của thanh ghi nguyên nhân 
là 0. Điều này cho phép chúng ta khôi phục lại mặt nạ ngắt. 
86 
 Hình 5.2: Thanh ghi trạng thái và thanh ghi nguyên nhân 
5.5.4 Truyền dữ liệu giữa thiết bị và bộ nhớ 
 Chúng ta có hai phương pháp khác nhau để thiết bị nhập/xuất giao tiếp với bộ xử 
lý. Đó là phương pháp thăm dò và ngắt nhập/xuất. Cả hai phương pháp này thích hợp 
với thiết bị nhập/xuất có băng thông thấp. Các thiết bị này thường có giá rẻ với trình 
điều khiển thiết bị và giao tiếp đơn giản hơn so với các thiết bị nhập/xuất có băng 
thông cao. Trong cả hai phương pháp, bộ xử lý có vai trò quan trọng để quản lý việc 
truyền dữ liệu. 
 Cơ chế luân phiên được sử dụng trong phương pháp dùng ngắt nhập/xuất. Trong 
trường hợp này hệ điều hành truyền dữ liệu nhỏ (số byte ít) từ thiết bị hoặc đến thiết 
bị. Do thao tác nhập/xuất sử dụng ngắt nên hệ điều hành có thể thực hiện các công 
việc khác trong khi dữ liệu được đọc từ thiết bị hoặc ghi vào thiết bị. Khi hệ điều 
hành nhận một ngắt từ thiết bị, hệ điều hành đọc trạng thái để kiểm tra lỗi. Nếu 
không có lỗi hệ điều hành tiếp tục truyền dữ liệu tiếp theo. Khi byte cuối cùng của 
yêu cầu nhập/xuất được truyền và thao tác nhập xuất hoàn thành, hệ điều hành thông 
báo chương trình. Bộ xử lý và hệ điều hành làm tất cả công việc trong quá trình này: 
truy cập bộ nhớ và thiết bị khi dữ liệu được truyền. 
 Ngắt nhập/xuất làm giảm thời gian bộ xử lý chờ đợi mỗi sự kiện nhập/xuất, mặc 
dù chúng ta dùng phương pháp này để truyền dữ liệu với đĩa cứng thì đầu đọc đĩa 
cứng không thể chấp nhận bởi vì sẽ dùng phần lớn thời gian bộ xử lý khi đĩa đang 
được truyền. Đối với các thiết bị băng thông lớn như đĩa cứng, quá trình truyền sẽ 
bao gồm một khối dữ liệu lớn (hàng trăm đến hàng ngàn byte). Vì vậy, các nhà thiết 
kế máy tính phát triển một mô hình để giảm tải cho bộ xử lý và dùng trình điều khiển 
thiết bị để truyền dữ liệu trực tiếp với bộ nhớ mà không có sự tham gia của bộ xử lý. 
Mô hình này được gọi là truy cập bộ nhớ trực tiếp (DMA - direct memory access). 
87 
Mô hình ngắt vẫn được sử dụng để thiết bị giao tiếp với bộ xử lý nhưng chỉ khi quá 
trình truyền nhập/xuất hoàn thành hoặc khi có lỗi xảy ra. 
 DMA được thực hiện bởi trình điều khiển đặc biệt để truyền dữ liệu giữa thiết bị 
nhập/xuất và bộ nhớ mà không cần đến bộ xử lý. Trình điều khiển DMA trở thành 
chủ nhân bus (master – đơn vị chiếm giữ bus để thực hiện thao tác truyền dữ liệu) để 
điều khiển thao tác đọc hoặc ghi giữa thiết bị và bộ nhớ. Một quá trình truyền dữ liệu 
với DMA bao gồm ba bước: 
 1. Bộ xử lý thiết lập DMA bằng cách cung cấp định danh (identity) của thiết bị, 
thao tác được thực hiện với thiết bị, địa chỉ bộ nhớ để truyền dữ liệu và số byte dữ 
liệu cần được truyền. 
 2. DMA bắt đầu thực hiện thao tác trên thiết bị và điều khiển hệ thống bus. Khi dữ 
liệu sẳn sàng (từ thiết bị hoặc bộ nhớ), thao tác truyền dữ liệu được thực hiện. DMA 
cung cấp địa chỉ bộ nhớ để đọc hoặc ghi dữ liệu. Nếu yêu cầu nhiều quá trình truyền 
dữ liệu, DMA sẽ cung cấp địa chỉ bộ nhớ tiếp theo và khởi tạo quá trình truyền tiếp 
theo. Như vậy, theo mô hình này DMA sẽ thực hiện toàn bộ quá trình truyền dữ liệu 
(dung lượng có thể hàng ngàn byte) mà không có sự tham gia của bộ xử lý. 
 3. Khi quá trình truyền dữ liệu DMA hoàn thành, trình điều khiển DMA sẽ gửi tín 
hiệu ngắt tới bộ xử lý. Sau đó, bộ xử lý sẽ kiểm tra trình điều khiển DMA và bộ nhớ 
để xem toàn bộ thao tác có thực hiện thành công hay không. 
 Một hệ thống có thể có nhiều thiết bị DMA. Xem một hệ thống có một bus bộ nhớ 
- bộ xử lý và nhiều bus nhập/xuất. Mỗi trình điều khiển bus nhập/xuất thường bao 
gồm một vi xử lý DMA để điều khiển quá trình truyền dữ liệu giữa bộ nhớ và thiết bị 
trên bus nhập/xuất này. 
 Không giống như phương pháp thăm dò hay phương pháp ngắt nhập/xuất, DMA 
giao tiếp với bộ nhớ mà không dùng thời gian của bộ xử lý khi thực hiện thao tác 
truyền dữ liệu trên bus nhập/xuất. Bộ xử lý sẽ được trì hoãn khi muốn truy cập bộ 
nhớ trong khi bộ nhớ đang thực hiện thao tác DMA. Do bộ xử lý sử dụng bộ nhớ 
cache nên ít truy cập vào bộ nhớ chính. Vì vậy, băng thông bộ nhớ chính được giải 
phóng để thực hiện thao tác truyền dữ liệu với thiết bị nhập/xuất. 
5.5.5 Truy cập bộ nhớ trực tiếp DMA và hệ thống bộ nhớ 
 Khi DMA được kết hợp vào hệ thống nhập/xuất, mối quan hệ giữa hệ thống bộ 
nhớ và bộ xử lý đã thay đổi. Khi không có DMA, tất cả các truy cập vào bộ nhớ đều 
đến từ bộ xử lý và được xử lý thông qua cơ chế dịch địa chỉ và truy cập bộ nhớ 
cache. Khi có DMA, truy cập vào bộ nhớ nhưng không thông qua cơ chế dịch địa chỉ 
hoặc cấp bậc bộ nhớ cache. Điều này gây khó khăn cho cả hệ thống bộ nhớ ảo và hệ 
thống bộ nhớ với cache. Vấn đề này được giải quyết bằng sự kết hợp của kỹ thuật 
phần cứng và hỗ trợ phần mềm. 
 Kỹ thuật DMA gây khó khăn cho hệ thống bộ nhớ ảo bởi vì trang có địa chỉ vật lý 
và địa chỉ ảo. Kỹ thuật này cũng tạo ra khó khăn cho hệ thống với bộ nhớ cache bởi 
vì có hai bản sao của một thành phần dữ liệu: một ở trong cache và một ở trong bộ 
nhớ. Bởi vì, DMA yêu cầu truy cập trực tiếp bộ nhớ mà không thông qua bộ nhớ 
88 
cache của bộ xử lý nên nội dung bộ nhớ được thấy bởi DMA và bộ xử lý có thể khác 
nhau. Xem một thao tác đọc đĩa mà DMA lưu trực tiếp vào bộ nhớ. Nếu một số vị trí 
bộ nhớ DMA ghi vào mà các vị trí này ở trong cache, khi đó bộ xử lý sẽ nhận giá trị 
cũ khi thực hiện thao tác đọc. Tương tự, đối với thao tác ghi lại của bộ nhớ cache thì 
DMA có thể đọc giá trị cũ trực tiếp từ bộ nhớ trong khi giá trị mới trong cache chưa 
được ghi lại. 
5.6 TÓM TẮT 
 Trong chương này giới thiệu tổng quan về hệ thống lưu trữ và nhập/xuất trong 
máy tính. Cấu tạo của đĩa từ bao gồm nhiều lá đĩa, các đại lượng đặc trưng của đĩa từ 
như tốc độ quay, thời gian truy cập. Bộ nhớ flash có nguyên lý hoạt động dựa trên 
EEPROM. Ưu điểm của bộ này là nhỏ gọn, tiêu thụ ít điện năng nên được sử dụng 
ngày càng phổ biến. Hệ thống bus dùng để kết nối các thành phần bên trong máy 
tính. Có hai loại bus: bus hệ thống và bus nhập/xuất. Hệ điều hành đóng vai trò quan 
trọng trong việc xử lý yêu cầu nhập/xuất như: ra lệnh cho thiết bị nhập/xuất, giao tiếp 
với bộ xử lý, độ ưu tiên ngắt của thiết bị nhập/xuất và điều khiển truyền dữ liệu giữa 
thiết bị nhập/xuất và bộ nhớ bằng kỹ thuật DMA. 
89 
 CÂU HỎI ÔN TẬP CHƢƠNG 5 
1. Cấu tạo và nguyên lý hoạt động đĩa từ? 
2. Cấu tạo và nguyên lý hoạt động bộ nhớ flash? 
3. Bus được chia thành mấy loại? 
4. Đặc điểm của bus đồng bộ? 
5. Đặc điểm của bus không đồng bộ? 
6. Mô hình thiết bị nhập/xuất được ánh xạ vào bộ nhớ là gì? 
7. Mô hình dùng tập lệnh nhập/xuất riêng là gì? 
8. Kỹ thuật thăm dò hoạt động như thế nào? 
9. Các bước để xử lý ngắt? 
10. Kỹ thuật DMA hoạt động như thế nào? 
 TÀI LIỆU THAM KHẢO 
David A.Patterson., & John L.Hennessy. (2007). Computer Architecture: A 
 Quantitative Approach (fourth edition). San Francisco: Morgan Kaufmann. 
David A.Patterson., & John L.Hennessy. (2012). Computer organization and Design: 
 The hardware/software interface (fourth edition). Waltham: Morgan Kaufmann 
Miles Murdocca., & Vincent Heuring. (k.n.). Principles of Computer Architecture. 
 Retrieved from  
Võ Văn Chín., Nguyễn Hồng Vân., & Phạm Hữu Tài. (2003). Giáo trình Kiến trúc 
 máy tính. Cần Thơ: Đại học Cần Thơ. 
William Stallings. (2010). Computer organization and Architecture: Designing for 
 Performance (eighth edition). New Jersey: Prentice Hall. 
90 

File đính kèm:

  • pdftai_lieu_giang_day_kien_truc_may_tinh.pdf