Vì sao cpu có thể truy nhập theo địa chỉ

  1. Những thiết bị nào sau đây được xếp vào nhóm thiết bị ngoại vi?

  1. Mainboard, CPU, CD-ROM Drive, Chuột

  2. HDD, CD-ROM Drive, FDD, Bàn phím

  3. Bàn phím, chuột, màn hình, máy in

  4. Màn hình, CPU, RAM, Main

  1. Điện thoại thông minh (Smartphone) là gì?

  1. Hỗ trợ tất cả các hệ điều hành

  2. Bền hơn so với điện thoại di động khác

  3. Điện thoại tích hợp một nền tảng hệ điều hành di động với nhiều tính năng hỗ trợ tiên tiến

  4. Điện thoại chỉ có chức năng nghe và gọi

  1. Trong máy tính, PC là viết tắt của từ nào?

  1. Performance Computer

  2. Personnal Computer

  3. Personal Computer

  4. Printing Computer

  1. Phần cứng máy tính là gì?

  1. Cấu tạo của phần mềm về mặt logic

  2. Cấu tạo của phần mềm về mặt vật lý

  3. Các bộ phận cụ thể của máy tính về mặt vật lý như màn hình, chuột, bàn phím,…

  4. Cả 3 phương án đều sai

  1. Bộ nhớ tạm thời

  2. Bộ nhớ đọc, ghi

  3. Bộ nhớ chỉ đọc

  4. Bộ nhớ ngoài

  1. MB (Megabyte) là đơn vị đo gì?

  1. Đo tốc độ mạng

  2. Đo tốc độ của nguồn máy tính

  3. Đo dung lượng của thiết bị lưu trữ như đĩa cứng

  4. Độ phân giải màn hình

  1. Phát biểu nào là đúng khi nói đến CPU?

  1. CPU được tạo bởi bộ nhớ RAM và ROM

  2. CPU lưu trữ các phần mềm người sử dụng

  3. CPU là viết tắt của Processing Unit, là đơn vị xử lý trung tâm tích hợp trong một chip được gọi là một vi xử lý, để xử lý dữ liệu và dịch các lệnh của chương trình

  4. CPU thường được tích hợp với một chip gọi là vi xử lý

  1. Đơn vị tính nhỏ nhất của máy tính là gì?

  1. Byte

  2. Megabyte

  3. Bit

  4. Terabyte

  1. 2 bit

  2. 10 bit

  3. 8 bit

  4. 16 bit

  1. CPU làm những công việc chủ yếu nào?

  1. Lưu trữ dữ liệu

  2. Nhập dữ liệu

  3. Xử lý dữ liệu

  4. Xuất dữ liệu

  1. Khi đọc các thông số cấu hình của một máy tính thông thường: 2GHZ-320GB-4.00GB, con số 4.00GB chỉ điều gì?

  1. Chỉ tốc độ của bộ vi xử lý

  2. Chỉ dung lượng của đĩa cứng

  3. Chỉ dung luojng bộ nhớ truy cập ngẫu nhiên RAM

  4. Chỉ dung lượng của bộ nhớ chỉ đọc ROM

  1. Thành phần nào của máy tính có thể ngăn máy tính khởi động, nếu nó bị hư hỏng hoặc kết nối không đúng cách?

  1. Chuột

  2. Bàn phím

  3. Ổ đĩa cứng

  4. Máy in

  1. Nhóm nào sau đây bao gồm các thiết bị được xếp vào cùng loại?

  1. Đĩa cứng trong, máy in, các loại đĩa quang (CD,DVD), thẻ nhớ, ổ nhớ di động

  2. Đĩa cứng trong, đĩa cứng ngoài, USB, thẻ nhớ, máy scan, ổ nhớ di động

  3. Đĩa cứng trong, đĩa cứng ngoài, các loại đĩa quang (CD,DVD), thẻ nhớ, ổ nhớ di động

  4. Máy in, máy scan, màn hình, loa

  1. Hãy chỉ ra đâu là thiết bị nhập?

  1. Máy in

  2. Máy quét

  3. Loa

  4. Màn hình

  1. Các thiết bị nào có thể thiếu trong một máy tính?

  1. Bộ nguồn

  2. Bộ nhớ RAM

  3. Ổ đĩa mềm

  4. Màn hình

  1. Các thành phần cơ bản của 1 máy tính?

  1. CPU, các thiết bị lưu trữ, bộ nhớ

  2. CPU, bộ nhớ, các thiết bị nhập dữ liệu

  3. CPU, các thiết bị lưu trữ, bộ nhớ, các thiết bị nhập và các thiết bị xuất dữ liệu

  4. Bộ nhớ, các thiết bị nhập, thiết bị xuất dữ liệu và con người

  1. Máy in và máy quét, thiết bị nào là thiết bị nhập thông tin vào máy tính?

  1. Máy in

  2. Máy quét

  3. Cả hai

  4. Không cái nào

  1. Các thiết bị: chuột, bàn phím, máy quét, thuộc khối chức năng nào?

  1. Thiết bị xuất

  2. Thiết bị nhập

  3. Khối xử lý

  4. Các thiết bị lưu trữ

  1. Thiết bị xuất để đưa ra kết quả xử lý cho người sử dụng. Các thiết bị xuất thông dụng hiện nay là?

  1. Màn hình, ổ cứng

  2. Màn hình, màn hình cảm ứng, máy in, loa, tai nghe

  3. Máy in, ổ mềm

  4. Màn hình, ổ mềm

  1. Phần mềm công cộng là gì?

  1. Là phần mềm có tính phí và bạn có thể chia sẻ cho những người khác mà không mất phí

  2. Là phần mềm không có bản quyền, bất cứ ai cũng có thể sử dụng miễn phí mà không bị hạn chế

  3. Là phần mềm dùng thử bị hạn chế về thời gian sử dụng và các tính năng sử dụng

  4. Là phần mềm có bản quyền và được thay đổi bới bất cứ ai

*** Lưu ý: Những câu hỏi trên chỉ mang tính chất tham khảo.

NGÀNH TIN HỌC ỨNG DỤNG

TRUNG TÂM TIN HỌC ĐH KHTN



Bus địa chỉ là các đường dẫn tín hiệu logic một chiều để truyền địa chỉ tham chiếu tới các khu vực bộ nhớ và chỉ ra dữ liệu được lưu giữ ở đâu trong không gian bộ nhớ. Trong qúa trình hoạt động CPU sẽ điều khiển bus địa chỉ để truyền dữ liệu giữa các khu vực bộ nhớ và CPU. Các địa chỉ thông thường tham chiếu tới các khu vực bộ nhớ hoặc các khu vực vào ra, hoặc ngoại vi. Dữ liệu được lưu ở các khu vực đó thường là 8bit (1 byte), 16bit, hoặc 32bit tùy thuộc vào cấu trúc từng loại vi xử lý/vi điều khiển. Hầu hết các vi điều khiển thường đánh địa chỉ dữ liệu theo khối 8bit. Các loại vi xử lý 8bit, 16bit và 32bit nói chung cũng đều có thể làm việc trao đổi với kiểu dữ liệu 8bit và 16bit.

Chúng ta vẫn thường được biết tới khái niệm địa chỉ truy nhập trực tiếp, đó là khả năng CPU có thể tham chiếu và truy nhập tới trong một chu kỳ bus. Nếu vi xử lý có N bit địa chỉ tức là nó có thể đánh địa chỉ được 2N khu vực mà CPU có thể tham chiếu trực tiếp tới. Qui ước các khu vực được đánh địa chỉ bắt đầu từ địa chỉ 0 và tăng dần đến 2N-1. Hiện nay các vi xử lý và vi điều khiển nói chung chủ yếu vẫn sử dụng phổ biến các bus dữ liệu có độ rộng là 16, 20, 24, hoặc 32bit. Nếu đánh địa chỉ theo byte thì một vi xử lý 16bit có thể đánh địa chỉ được 216 khu vực bộ nhớ tức là 65,536 byte = 64Kbyte. Tuy nhiên có một số khu vực bộ nhớ mà CPU không thể truy nhập trực tiếp tới tức là phải sử dụng nhiều nhịp bus để truy nhập, thông thường phải kết hợp với việc điều khiển phần mềm. Kỹ thuật này chủ yếu được sử dụng để mở rộng bộ nhớ và thường được biết tới với khái niệm đánh địa chỉ trang nhớ khi nhu cầu đánh địa chỉ khu vực nhớ vượt quá phạm vi có thể đánh địa chỉ truy nhập trực tiếp.

Ví dụ: CPU 80286 có 24bit địa chỉ sẽ cho phép đánh địa chỉ trực tiếp cho 224 byte nhớ. CPU 80386 và các loại vi xử lý mạnh hơn có không gian địa chỉ 32bit sẽ có thể đánh được tới 232 byte địa chỉ trực tiếp.

Bus dữ liệu là các kênh truyền tải thông tin theo hai chiều giữa CPU và bộ nhớ hoặc các thiết bị ngoại vi vào ra. Bus dữ liệu được điều khiển bởi CPU để đọc hoặc viết các dữ liệu hoặc mã lệnh thực thi trong quá trình hoạt động của CPU. Độ rộng của bus dữ liệu nói chung sẽ xác định được lượng dữ liệu có thể truyền và trao đổi trên bus. Tốc độ truyền hay trao đổi dữ liệu thường được tính theo đơn vị là [byte/s]. Số lượng đường bit dữ liệu sẽ cho phép xác định được số lượng bit có thể lưu trữ trong mỗi khu vực tham chiếu trực tiếp. Nếu một bus dữ liệu có khả năng thực hiện một lần truyền trong 1 μs, thì bus dữ liệu 8bit sẽ có băng thông là 1Mbyte/s, bus 16bit sẽ có băng thông là 2Mbyte/s và bus 32bit sẽ có băng thông là 4Mbyte/s. Trong trường hợp bus dữ liệu 8bit với chu kỳ bus là T=1μs (tức là sẽ truyền được 1byte/1chu kỳ) thì sẽ truyền được 1 Mbyte trong 1s hay 2Mbyte trong 2s.

  • Bus điều khiển Bus điều khiển phục vụ truyền tải các thông tin dữ liệu để điều khiển hoạt động của hệ thống. Thông thường các dữ liệu điều khiển bao gồm các tín hiệu chu kỳ để đồng bộ các nhịp chuyển động và hoạt động của hệ thống. Bus điều khiển thường được điều khiển bởi CPU để đồng bộ hóa nhịp hoạt động và dữ liệu trao đổi trên các bus. Trong trường hợp vi xử lý sử dụng dồn kênh bus dữ liệu và bus địa chỉ tức là một phần hoặc toàn bộ bus dữ liệu sẽ được sử dụng chung chia sẻ với bus địa chỉ thì cần một tín hiệu điều khiển để phân nhịp truy nhập cho phép chốt lưu trữ thông tin địa chỉ mỗi khi bắt đầu một chu kỳ truyền. Một ví dụ về các chu kỳ bus và sự đồng bộ của chúng trong hoạt động của hệ thống bus địa chỉ và dữ liệu dồn kênh được chỉ ra trong Hình 2.10: Đây là hoạt động điển hình trong họ vi điều khiển 8051 và nhiều loại tương tự.
    Vì sao cpu có thể truy nhập theo địa chỉ
    Hình 2.10: Chu kì hoạt động bus dồn kênh

Kiến trúc bộ nhớ được chia ra làm hai loại chính và được áp dụng rộng rãi trong hầu hết các Chip xử lý nhúng hiện nay là kiến trúc bộ nhớ von Neumann và Havard. Trong kiến trúc von Neumann không phân biệt vùng chứa dữ liệu và mã chương trình. Cả chương trình và dữ liệu đều được truy nhập theo cùng một đường. Điều này cho phép đưa dữ liệu vào vùng mã chương trình ROM, và cũng có thể lưu mã chương trình vào vùng dữ liệu RAM và thực hiện từ đó.

Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.11: Kiến trúc bộ nhớ von Neumann và Havard

Kiến trúc Havard tách/phân biệt vùng lưu mã chương trình và dữ liệu. Mã chương trình chỉ có thể được lưu và thực hiện trong vùng chứa ROM và dữ liệu cũng chỉ có thể lưu và trao đổi trong vùng RAM. Hầu hết các vi xử lý nhúng ngày nay sử dụng kiến trúc bộ nhớ Havard hoặc kiến trúc Havard mở rộng (tức là bộ nhớ chương trình và dữ liệu tách biệt nhưng vẫn cho phép khả năng hạn chế để lấy dữ liệu ra từ vùng mã chương trình). Trong kiến trúc bộ nhớ Havard mở rộng thường sử dụng một số lượng nhỏ các con trỏ để lấy dữ liệu từ vùng mã chương trình theo cách nhúng vào trong các lệnh tức thời. Một số Chip vi điều khiển nhúng tiêu biểu hiện nay sử dụng cấu trúc Havard là 8031, PIC, Atmel AVR90S. Nếu sử dụng Chip 8031 chúng ta sẽ nhận thấy điều này thông qua việc truy nhập lấy dữ liệu ra từ vùng dữ liệu RAM hoặc từ vùng mã chương trình. Chúng ta có một vài con trỏ được sử dụng để lấy dữ liệu ra từ bộ nhớ dữ liệu RAM, nhưng chỉ có duy nhất một con trỏ DPTR có thể được sử dụng để lấy dữ liệu ra từ vùng mã chương trình. Hình 3.11 mô tả nguyên lý kiến trúc của bộ nhớ von Neumann và Harvard.

Ưu điểm nổi bật của cấu trúc bộ nhớ Harvard so với kiến trúc von Neumann là có hai kênh tách biệt để truy nhập vào vùng bộ nhớ mã chương trình và dữ liệu nhờ vậy mà mã chương trình và dữ liệu có thể được truy nhập đồng thời và làm tăng tốc độ luồng trao đổi với bộ xử lý.

  • Bộ nhớ chương trình – PROM (Programmable Read Only Memory)

Vùng để lưu mã chương trình. Có ba loại bộ nhớ PROM thông dụng được sử dụng cho hệ nhúng và sẽ được giới thiệu lần lượt sau đây:

  • EPROM :Bao gồm một mảng các transistor khả trình. Mã chương trình sẽ được ghi trực tiếp và vi xử lý có thể đọc ra để thực hiện. EPROM có thể xoá được bằng tia cực tím và có thể được lập trình lại. Cấu trúc vật lý của EPROM được mô tả như trong Hình 3.12.
Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.12: Nguyên lý cấu tạo và hoạt động xoá của EPROM

  • Bộ nhớ Flash: Cũng giống như EPROM được cấu tạo bởi một mảng transistor khả trình nhưng có thể xoá được bằng điện và chính vì vậy có thể nạp lại chương trình mà không cần tách ra khỏi nền phần cứng VXL. Ưu điểm của bộ nhớ flash là có thể lập trình trực tiếp trên mạch cứng mà nó đang thực thi trên đó.
Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.13: Sơ đồ nguyên lý ghép nối EPROM với VXL

  • Bộ nhớ dữ liệu – RAM: Vùng để lưu hoặc trao đổi dữ liệu trung gian trong quá trình thực hiện chương trình.
Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.14: Cấu trúc nguyên lý bộ nhớ RAM

Có hai loại SRAM và DRAM.

Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.15: Cấu trúc một phần tử nhớ DRAM

Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.16: Nguyên lý ghép nối (mở rộng) RAM với VXL

Hầu hết các chip vi điều khiển ngày nay đều có ít nhất một bộ định thời gian/bộ đếm có thể cấu hình hoạt động linh hoạt theo các mode phục vụ nhiều mục đích trong các ứng dụng xử lý, điều khiển. Các bộ định thời gian cho phép tạo ra các chuỗi xung và ngắt thời gian hoặc đếm theo các khoảng thời gian có thể lập trình. Chúng thường được ứng dụng phổ biến trong các nhiệm vụ đếm xung, đo khoảng thời gian các sự kiện, hoặc định chu kỳ thời gian thực thi các tác vụ. Một trong những ứng dụng quan trọng của bộ định thời gian là tạo nhịp từ bộ tạo xung thạch anh cho bộ truyền thông dị bộ đa năng hoạt động. Thực chất đó là ứng dụng để thực hiện phép chia tần số. Để đạt được độ chính xác, tần số thạch anh thường được chọn sao cho các phép chia số nguyên được thực hiện chính xác đảm bảo cho tốc độ truyền thông dữ liệu được tạo ra chính xác. Chính vì vậy họ vi điều khiển 80C51 thường hay sử dụng thạch anh có tần số dao động là 11.059 thay vì 12MHz để tạo ra nhịp hoạt động truyền thông tốc độ chuẩn 9600.

Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.17: Bộ định thời/bộ đếm 8bit của AVR

Ngắt là một sự kiện xảy ra làm dừng hoạt động chương trình hiện tại để phục vụ thực thi một tác vụ hay một chương trình khác. Cơ chế ngắt giúp CPU làm tăng tốc độ đáp ứng phục vụ các sự kiện trong chương trình hoạt động của VXL/VĐK. Các VĐK khác nhau sẽ định nghĩa các nguồn tạo ngắt khác nhau nhưng đều có chung một cơ chế hoạt động ví dụ như ngắt truyền thông nối tiếp, ngắt bộ định thời gian, ngắt cứng, ngắt ngoài...Khi một sự kiện yêu cầu ngắt xuất hiện, nếu được chấp nhận CPU sẽ lưu cất trạng thái hoạt động cho chương trình hiện tại đang thực hiện ví dụ như nội dung bộ đếm chương trình (con trỏ lệnh) các nội dung thanh ghi lưu dữ liệu điều khiển chương trình nói chung để thực thi chương trình phục vụ tác vụ cho sự kiện ngắt. Thực chất quá trình ngắt là CPU nhận dạng tín hiệu ngắt, nếu chấp nhận sẽ đưa con trỏ lệnh chương trình trỏ tới vùng mã chứa chương trình phục vụ tác vụ ngắt. Vì vậy mỗi một ngắt đều gắn với một vector ngắt như một con trỏ lưu thông tin địa chỉ của vùng bộ nhớ chứa mã chương trình phục vụ tác vụ của ngắt. CPU sẽ thực hiện chương trình phục vụ tác vụ ngắt đến khi nào gặp lệnh quay trở về chương trình trước thời điểm sự kiện ngắt xảy ra. Có thể phân ra 2 loại nguồn ngắt: Ngắt cứng và Ngắt mềm.

  • Ngắt mềm: Ngắt mềm thực chất thực hiện một lời gọi hàm đặc biệt mà được kích hoạt bởi các nguồn ngắt là các sự kiện xuất hiện từ bên trong chương trình và ngoại vi tích hợp trên Chip ví dụ như ngắt thời gian, ngắt chuyển đổi A/D, … Cơ chế ngắt này còn được hiểu là loại thực hiện đồng bộ với chương trình vì nó được kích hoạt và thực thi tại các thời điểm xác định trong chương trình. Hàm được gọi sẽ thực thi chức năng tương ứng với yêu cầu ngắt. Các hàm đó thường được trỏ bởi một vector ngắt mà đã được định nghĩa và gán cố định bởi nhà sản xuất Chip. Ví dụ như hệ điều hành của PC sử dụng ngắt số 21hex để gán cho ngắt truy nhập đọc dữ liệu từ đĩa cứng và xuất dữ liệu ra máy in.
  • Ngắt cứng: Ngắt cứng có thể được xem như là một lời gọi hàm đặc biệt trong đó nguồn kích hoạt là một sự kiện đến từ bên ngoài chương trình thông qua một cấu trúc phần cứng (thường được kết nối với thế giới bên ngoài qua các chân ngắt). Ngắt cứng thường được hiểu hoạt động theo cơ chế dị bộ vì các sự kiện ngắt kích hoạt từ các tín hiệu ngoại vi bên ngoài và tương đối độc lập với CPU, thường là không xác định được thời điểm kích hoạt. Khi các ngắt cứng được kích hoạt CPU sẽ nhận dạng và thực hiện lời gọi hàm thực thi chức năng phục vụ sự kiện ngắt tương ứng.

Trong các cơ chế ngắt khoảng thời gian từ khi xuất hiện sự kiện ngắt (có yêu cầu phục vụ ngắt) tới khi dịch vụ ngắt được thực thi là xác định và tuỳ thuộc vào công nghệ phần cứng xử lý của Chip.

  • Bộ định thời chó canh (Watchdog Timer)

Thông thường khi có một sự cố xảy ra làm hệ thống bị treo hoặc chạy quẩn, CPU sẽ không thể tiếp tục thực hiện đúng chức năng. Đặc biệt khi hệ thống phải làm việc ở chế độ vận hành tự động và không có sự can thiệp trực tiếp thường xuyên bởi người vận hành. Để thực hiện cơ chế tự giám sát và phát hiện sự cố phần mềm, một số VXL/VĐK có thêm một bộ định thời chó canh. Bản chất đó là một bộ định thời đặc biệt để định nghĩa một khung thời gian hoạt động bình thường của hệ thống. Nếu có sự cố phần mềm xảy ra sẽ làm hệ thống bị treo khi đó bộ định thời chó canh sẽ phát hiện và giúp hệ thống thoát khỏi trạng thái đó bằng cách thực hiện khởi tạo lại chương trình. Chương trình hoạt động khi có bộ định thời phải đảm bảo reset nó trước khi khung thời gian bị vi phạm. Khung thời gian này được định nghĩa phụ thuộc vào sự đánh giá của người thực hiện phần mềm, thiết lập khoảng thời gian đảm bảo chắc chắn hệ thống thực hiện bình thường không có sự cố phần mềm.

Có một số cơ chế thực hiện cài đặt bộ định thời cho canh để giám sát hoạt động của hệ thống như sau:

Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.18: Sơ đồ nguyên lý của bộ định thời chó canh

Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.19: Nguyên lý hoạt động của bộ định thời chó canh

  • Bộ điều khiển truy cập bộ nhớ trực tiếp – DMA:

DMA (Direct Memory Access) là cơ chế hoạt động cho phép hai hay nhiều vi xử lý hoặc ngoại vi chia sẻ bus chung. Thiết bị nào đang có quyền điều khiển bus sẽ có thể toàn quyền truy nhập và trao đổi dữ liệu trực tiếp với các bộ nhớ như hệ thống có một vi xử lý. Ứng dụng phổ biến nhất của DMA là chia sẻ bộ nhớ chung giữa hai bộ vi xử lý hoặc các ngoại vi để truyền dữ liệu trực tiếp giữa thiết bị ngoại vi vào/ra và bộ nhớ dữ liệu của VXL.

Truy nhập bộ nhớ trực tiếp được sử dụng để đáp ứng nhu cầu trao đổi dữ liệu vào ra tốc độ cao giữa ngoại vi với bộ nhớ. Thông thường các ngoại vi kết nối với hệ thống phải chia sẻ bus dữ liệu và được điều khiển bởi CPU trong quá trình trao đổi dữ liệu. Điều này làm hạn chế tốc độ trao đổi, để tăng cường tốc độ và loại bỏ sự can thiệp của CPU, đặc biệt trong trường hợp cần truyền một lượng dữ liệu lớn. Cơ chế hoạt động DMA được mô tả như trong Hình 2.20. Thủ tục được bắt đầu bằng việc yêu cầu thực hiện DMA với CPU. Sau khi xử lý, nếu được chấp nhận CPU sẽ trao quyền điều khiển bus cho ngoại vi và thực hiện quá trình trao đổi dữ liệu. Sau khi thực hiện xong CPU sẽ nhận được thông báo và nhận lại quyền điều khiển bus. Trong cơ chế DMA, có hai cách để truyền dữ liệu: kiểu DMA chu kỳ đơn, và kiểu DMA chu kỳ nhóm (burst).

Vì sao cpu có thể truy nhập theo địa chỉ

Hình 2.20: Nhịp hoạt động DMA

  • DMA chu kì đơn và nhóm: Trong kiểu hoạt động DMA chu kỳ nhóm, ngoại vi sẽ nhận được quyền điều khiển và truyền khối dữ liệu rồi trả lại quyền điều khiển cho CPU. Trong cơ chế DMA chu kỳ đơn ngoại vi sau khi nhân được quyền điều khiển bus chỉ truyền một từ dữ liệu rồi trả lại ngay quyền kiểm soát bộ nhớ và bus dữ liệu cho CPU. Trong cơ chế thực hiện DMA cần có một bước xử lý để quyết định xem thiết bị nào sẽ đươc nhận quyền điều khiển trong trường hợp có nhiều hơn một thiết bị có nhu cầu sử dụng DMA. Thông thường kiểu DMA chu kỳ nhóm cần ít dữ liệu thông tin điều khiển (overhead) nên có khả năng trao đổi với tốc độ cao nhưng lại chiếm nhiều thời gian truy nhập bus do truyền cả khối dữ liệu lớn. Điều này có thể ảnh hưởng đến hoạt động của cả hệ thống do trong suốt quá trình thực hiện DMA nhóm, CPU sẽ bị khoá quyền truy nhập bộ nhớ và không thể xử lý các nhiệm vụ khác của hệ thống mà có nhu cầu bộ nhớ, ví dụ như các dịch vụ ngắt, hoặc các tác vụ thời gian thực...
  • Chu kì rỗi (Cycle Stealing): Trong kiểu này DMA sẽ được thực hiện trong những thời điểm chu kỳ bus mà CPU không sử dụng bus do đó không cần thực hiện thủ tục xử lý cấp phát quyền truy nhập và thực hiện DMA. Hầu hết các vi xử lý hiện đại đều sử dụng gần như 100% dung lượng bộ nhớ và băng thông của bus nên sẽ không có nhiều thời gian dành cho DMA thực hiện. Để tiết kiệm và tối ưu tài nguyên thì cần có một trọng tài phân xử và dữ liệu sẽ được truyền đi xếp chồng theo thời gian. Nói chung kiểu DMA dạng burst hiệu quả nhất khi khoảng thời gian cần thực hiện DMA tương đối nhỏ. Trong khoảng thời gian thực hiện DMA, toàn bộ băng thông của bus sẽ được sử dụng tối đa và toàn bộ khối dữ liệu sẽ được truyền đi trong một khoảng thời gian rất ngắn. Nhưng nhược điểm của nó là nếu dữ liệu cần truyền lớn và cần một khoảng thời gian dài thì sẽ dẫn đến việc block CPU và có thể bỏ qua việc xử lý các sự kiện và tác vụ khác. Đối với DMA chu kỳ đơn thì yêu cầu truy nhập bộ nhớ, truyền một từ dữ liệu và giải phóng bus. Cơ chế này cho phép thực hiện truyền interleave và được biết tới với tên gọi inteleaved DMA. Kiểu truyền DMA chu kỳ đơn phù hợp để truyền dữ liệu trong một khoảng thời gian dài mà có đủ thời gian để yêu cầu truy nhập và giải phóng bus cho mỗi lần truyền một từ dữ liệu. Chính vì vậy sẽ giảm băng thông truy nhập bus do phải mất nhiều thời gian để yêu cầu truy nhập và giải phóng bus. Trong trường hợp này CPU và các thiết bị khác vẫn có thể chia sẻ và truyền dữ liệu nhưng trong một dải băng thông hẹp. Trong nhiều hệ thống bus thực hiện cơ chế xử lý và giải quyết yêu cầu truy nhập (trọng tài) thông qua dữ liệu truyền vì vậy cũng không ảnh hưởng nhiều đến tốc độ truyền DMA. DMA được yêu cầu khi khả năng điều khiển của CPU để truyền dữ liệu thực hiện quá chậm. DMA cũng thực sự có ý nghĩa khi CPU đang phải thực hiện các tác vụ khác mà không cần nhu cầu truy nhập bus.

Nguồn: http://voer.edu.vn/m/bus-dia-chi-du-lieu-va-dieu-khien/28924b83