![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Truy cập bộ nhớ trực tiếp
Số trang: 7
Loại file: pdf
Dung lượng: 141.67 KB
Lượt xem: 7
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Truy cập bộ nhớ trực tiếpTrong bài này chúng tôi sẽ giới thiệu cho các bạn một số kiến trúc điển hình được sử dụng để thực thi truy cập bộ nhớ trực tiếp. Truy cập bộ nhớ trực tiếp (Direct Memory Access hay được viết tắt là DMA) là một thành phần quan trọng trong bất cứ kiến trúc máy tính hiện đại nào.
Nội dung trích xuất từ tài liệu:
Truy cập bộ nhớ trực tiếp Truy cập bộ nhớ trực tiếpTrong bài này chúng tôi sẽ giới thiệu cho các bạn một số kiếntrúc điển hình được sử dụng để thực thi truy cập bộ nhớ trựctiếp.Truy cập bộ nhớ trực tiếp (Direct Memory Access hay được viết tắtlà DMA) là một thành phần quan trọng trong bất cứ kiến trúc máytính hiện đại nào. DMA cho phép CPU chia tải (offload) các ngănxếp bộ nhớ ngày càng chật trội sang các thành phần khác. Cách thứcnày giúp giải phóng CPU khỏi các công việc lặt vặt và cung cấpnhiều chu trình (cycle) hơn để giải quyết các nhiệm vụ phức tạphơn.Cho ví dụ, có lẽ trong số các bạn sẽ có người thích lưu bài viết nàyvào ổ cứng để có thể đọc tham khảo sau này. Khi chọn thực hiệncông việc này, bạn sẽ cần phải chọn một địa điểm (location) nào đóđể lưu trữ bài viết. Lúc này dữ liệu được thu về bởi card mạng vàsau đó được định tuyến đến địa điểm mong muốn trên ổ cứng củabạn. Một nhiệm vụ rất đơn giản và khả năng của CPU thừa cho cáckiểu hoạt động như vậy.Mặc dù ý tưởng chính của kỹ thuật truy cập bộ nhớ trực tiếp kháđơn giản nhưng các hoạt động truy cập bộ nhớ một cách trực tiếp lạirất phức tạp. Bạn có thể hình dung, khi có nhiều thiết bị (hoặc ngoạivi) đều muốn truy cập đến các vị trí của bộ nhớ thì vấn đề sẽ xảy ra.Đây là lý do hoặc yêu cầu cần có một DMA controller. DMAcontroller thực chất là một thiết bị giúp điều khiển tất cả các hoạtđộng DMA.Để điều khiển các hoạt động DMA, DMA controller cần phải có cácthông tin liên quan với hoạt động sắp tới. Các thông tin này gồm cónhững thứ giống như các địa chỉ nguồn và đích, chế độ, kích thướcdữ liệu được truyền tải. DMA controller cũng cần được trang bị kiếnthức về những gì nó sẽ truyền tải, nơi truyền tải đến và cách truyềntải như thế nào, bao lâu để thực hiện công việc đó. Với kiến thứcnày, DMA controller có thể yêu cầu sự điều khiển bus nhớ từ CPU.Khi CPU sẵn sàng nhường sự điều khiển của bus nhớ, nó sẽ gửi đimột tín hiệu phúc đáp ACK để đáp trả lại tín hiệu yêu cầu của DMAcontroller.Hình 1: Sự tương tác Direct Memory AccessBurst hay Single-cycleĐiều gì sẽ xảy ra sau khi DMA controller tăng điều khiển của busnhớ hoàn toàn phụ thuộc vào chế độ DMA controller đã được chỉ thịtừ trước. Có hai chế độ hoạt động nói chung của DMA controller.Đầu tiên là burst. Khi DMA controller hoạt động trong chế độ burst,nó sẽ duy trì sự điều khiển của bus nhớ trong khoảng thời giantruyền tải bộ nhớ. Nhược điểm trong chế độ burst là CPU không thểtruy cập vào bus nhớ cho tới khi DMA controller hoàn tất việctruyền tải bộ nhớ. Lúc này CPU vẫn có thể truy cập vào cache L1 vàL2 của nó nhưng không thể truy cập vào bộ nhớ khác; điều này đãhạn chế CPU trong việc thực hiện nhiệm vụ và có thể khiến nó phảiđợi cho tới khi DMA controller hoàn tất việc truyền tải bộ nhớ sauđó trả sự điều khiển bus nhớ về lại cho mình.Để tránh tình huống CPU buộc phải đợi cho việc truyên tải bộ nhớhoàn tất, DMA controller có thể hoạt động trong chế độ khác mangtên single-cycle. Cách thức hoạt động trong chế độ single-cycle nhưsau, DMA controller sẽ trả sự điều khiển bus nhớ sau khi truyền tảixong mỗi block nhớ. Kích thước của mỗi block nhớ này thường rơivào cỡ 256 hoặc 512 byte. Điều này cho phép CPU có nhiều cơ hộisử dụng bus nhớ hơn cho các mục đích riêng mà không cần phải đợimột số lượng thời gian khá lớn hoàn thành việc truyền tải bộ nhớnhư ở chế độ burst. Tuy nhiên vẫn có một nhược điểm đối với hoạtđộng của DMA trong chế độ single-cycle này. Khi DMA controllertrả quyền điều khiển bus nhớ nó phải gửi một yêu cầu đến CPU đểtăng quyền điều khiển bus, sau đó phải đợi tính hiệu phúc đáp ACKtừ CPU trước khi có thể tăng điều khiển lại bus nhằm thực hiệntruyền tải các block nhớ khác. Như vậy việc lặp đi lặp lại nhiều lầnchuỗi yêu cầu/ phúc đáp sẽ làm tiêu tốn thời gian hoàn thành quátrình truyền tải của bộ nhớ.Chế độ hoạt động single-cycle thường được sử dụng nhất mặc dùhầu hết các DMA controller đều có thể đáp ứng cho cả hai chế độ.Chiều dài tối ưu của mỗi khối mà DMA sẽ truyền tải trước khi trảlại sự điều khiển cho bus và yêu cầu lại quyền điều khiển là một vấnđề khá phức tạp. Một hệ số chính trong việc xác định kích thước tốiưu của block là tốc độ lỗi quan sát được. Khi có tốc độ lỗi cao thìchiều dài của khối càng nhỏ sẽ càng tốt. Tuy nhiên cũng cần biếtrằng, khi có ít lỗi do giảm chiều dài block thì chúng ta sẽ chịu tổnthất ở chỗ tăng các quá trình yêu cầu/ phúc đáp giữa DMAcontroller và CPU. Quyết định thực thi như thế nào là phụ thuộc vàomỗi nhà sản xuất DMA controller (đặc biệt là các kỹ sư thiết kế ranó!). Nếu muốn biến cách xác định này như thế nào cho một DMAcontroller cụ thể, bạn có thể tìm kiếm nó ở đâu đó trong tài liệu,bằng không có thể yêu cầu từ công ty.Khi DMA controller đã hoàn tất quá trình truyền tải một block vàtrả lại sự điều khiển của bus nhớ cho CPU, CPU lúc này sẽ có thểtruy cập cập vào bus để thực hiện các mục đích riêng. Trong ví dụchúng tôi s ...
Nội dung trích xuất từ tài liệu:
Truy cập bộ nhớ trực tiếp Truy cập bộ nhớ trực tiếpTrong bài này chúng tôi sẽ giới thiệu cho các bạn một số kiếntrúc điển hình được sử dụng để thực thi truy cập bộ nhớ trựctiếp.Truy cập bộ nhớ trực tiếp (Direct Memory Access hay được viết tắtlà DMA) là một thành phần quan trọng trong bất cứ kiến trúc máytính hiện đại nào. DMA cho phép CPU chia tải (offload) các ngănxếp bộ nhớ ngày càng chật trội sang các thành phần khác. Cách thứcnày giúp giải phóng CPU khỏi các công việc lặt vặt và cung cấpnhiều chu trình (cycle) hơn để giải quyết các nhiệm vụ phức tạphơn.Cho ví dụ, có lẽ trong số các bạn sẽ có người thích lưu bài viết nàyvào ổ cứng để có thể đọc tham khảo sau này. Khi chọn thực hiệncông việc này, bạn sẽ cần phải chọn một địa điểm (location) nào đóđể lưu trữ bài viết. Lúc này dữ liệu được thu về bởi card mạng vàsau đó được định tuyến đến địa điểm mong muốn trên ổ cứng củabạn. Một nhiệm vụ rất đơn giản và khả năng của CPU thừa cho cáckiểu hoạt động như vậy.Mặc dù ý tưởng chính của kỹ thuật truy cập bộ nhớ trực tiếp kháđơn giản nhưng các hoạt động truy cập bộ nhớ một cách trực tiếp lạirất phức tạp. Bạn có thể hình dung, khi có nhiều thiết bị (hoặc ngoạivi) đều muốn truy cập đến các vị trí của bộ nhớ thì vấn đề sẽ xảy ra.Đây là lý do hoặc yêu cầu cần có một DMA controller. DMAcontroller thực chất là một thiết bị giúp điều khiển tất cả các hoạtđộng DMA.Để điều khiển các hoạt động DMA, DMA controller cần phải có cácthông tin liên quan với hoạt động sắp tới. Các thông tin này gồm cónhững thứ giống như các địa chỉ nguồn và đích, chế độ, kích thướcdữ liệu được truyền tải. DMA controller cũng cần được trang bị kiếnthức về những gì nó sẽ truyền tải, nơi truyền tải đến và cách truyềntải như thế nào, bao lâu để thực hiện công việc đó. Với kiến thứcnày, DMA controller có thể yêu cầu sự điều khiển bus nhớ từ CPU.Khi CPU sẵn sàng nhường sự điều khiển của bus nhớ, nó sẽ gửi đimột tín hiệu phúc đáp ACK để đáp trả lại tín hiệu yêu cầu của DMAcontroller.Hình 1: Sự tương tác Direct Memory AccessBurst hay Single-cycleĐiều gì sẽ xảy ra sau khi DMA controller tăng điều khiển của busnhớ hoàn toàn phụ thuộc vào chế độ DMA controller đã được chỉ thịtừ trước. Có hai chế độ hoạt động nói chung của DMA controller.Đầu tiên là burst. Khi DMA controller hoạt động trong chế độ burst,nó sẽ duy trì sự điều khiển của bus nhớ trong khoảng thời giantruyền tải bộ nhớ. Nhược điểm trong chế độ burst là CPU không thểtruy cập vào bus nhớ cho tới khi DMA controller hoàn tất việctruyền tải bộ nhớ. Lúc này CPU vẫn có thể truy cập vào cache L1 vàL2 của nó nhưng không thể truy cập vào bộ nhớ khác; điều này đãhạn chế CPU trong việc thực hiện nhiệm vụ và có thể khiến nó phảiđợi cho tới khi DMA controller hoàn tất việc truyền tải bộ nhớ sauđó trả sự điều khiển bus nhớ về lại cho mình.Để tránh tình huống CPU buộc phải đợi cho việc truyên tải bộ nhớhoàn tất, DMA controller có thể hoạt động trong chế độ khác mangtên single-cycle. Cách thức hoạt động trong chế độ single-cycle nhưsau, DMA controller sẽ trả sự điều khiển bus nhớ sau khi truyền tảixong mỗi block nhớ. Kích thước của mỗi block nhớ này thường rơivào cỡ 256 hoặc 512 byte. Điều này cho phép CPU có nhiều cơ hộisử dụng bus nhớ hơn cho các mục đích riêng mà không cần phải đợimột số lượng thời gian khá lớn hoàn thành việc truyền tải bộ nhớnhư ở chế độ burst. Tuy nhiên vẫn có một nhược điểm đối với hoạtđộng của DMA trong chế độ single-cycle này. Khi DMA controllertrả quyền điều khiển bus nhớ nó phải gửi một yêu cầu đến CPU đểtăng quyền điều khiển bus, sau đó phải đợi tính hiệu phúc đáp ACKtừ CPU trước khi có thể tăng điều khiển lại bus nhằm thực hiệntruyền tải các block nhớ khác. Như vậy việc lặp đi lặp lại nhiều lầnchuỗi yêu cầu/ phúc đáp sẽ làm tiêu tốn thời gian hoàn thành quátrình truyền tải của bộ nhớ.Chế độ hoạt động single-cycle thường được sử dụng nhất mặc dùhầu hết các DMA controller đều có thể đáp ứng cho cả hai chế độ.Chiều dài tối ưu của mỗi khối mà DMA sẽ truyền tải trước khi trảlại sự điều khiển cho bus và yêu cầu lại quyền điều khiển là một vấnđề khá phức tạp. Một hệ số chính trong việc xác định kích thước tốiưu của block là tốc độ lỗi quan sát được. Khi có tốc độ lỗi cao thìchiều dài của khối càng nhỏ sẽ càng tốt. Tuy nhiên cũng cần biếtrằng, khi có ít lỗi do giảm chiều dài block thì chúng ta sẽ chịu tổnthất ở chỗ tăng các quá trình yêu cầu/ phúc đáp giữa DMAcontroller và CPU. Quyết định thực thi như thế nào là phụ thuộc vàomỗi nhà sản xuất DMA controller (đặc biệt là các kỹ sư thiết kế ranó!). Nếu muốn biến cách xác định này như thế nào cho một DMAcontroller cụ thể, bạn có thể tìm kiếm nó ở đâu đó trong tài liệu,bằng không có thể yêu cầu từ công ty.Khi DMA controller đã hoàn tất quá trình truyền tải một block vàtrả lại sự điều khiển của bus nhớ cho CPU, CPU lúc này sẽ có thểtruy cập cập vào bus để thực hiện các mục đích riêng. Trong ví dụchúng tôi s ...
Tìm kiếm theo từ khóa liên quan:
thủ thuật máy tính mẹo vặt máy tính tăng tốc máy tính mẹo khi sử dụng laptop Truy cập bộ nhớ trực tiếpTài liệu liên quan:
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 334 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 326 0 0 -
Thủ thuật chặn web đen bằng phần mềm
10 trang 235 0 0 -
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 228 0 0 -
Phần III: Xử lý sự cố Màn hình xanh
3 trang 223 0 0 -
Tổng hợp 30 lỗi thương gặp cho những bạn mới sử dụng máy tính
9 trang 216 0 0 -
Sao lưu dữ liệu Gmail sử dụng chế độ Offline
8 trang 213 0 0 -
Giáo trình Bảo trì hệ thống và cài đặt phần mềm
68 trang 212 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 205 0 0 -
Hướng dẫn cách khắc phục lỗi màn hình xanh trong windows
7 trang 204 0 0