Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
các bác giải đáp dùm các câu hỏi sau
tại sao lại sử dụng bộ nhớ cache?
bộ nhớ ảo là gì ?ưu điểm
Cache trong tiếng anh có nghĩa là nơi cất giấu, nơi lưu trữ...
Trong kỹ thuật nó được xem như nơi lưu chuyển data. Lấy ví dụ như HDD máy tính, khi ta truy cập vào một file trên ổ cứng thì không có nghĩa là data sẽ được đọc ra lần luợt mà sẽ được đầu đọc trong HDD đọc một block data lớn đưa vào trong cache trước. Khi ta thao tác data với file này thì data sẽ được lấy ra từ cache, đầu đọc lại đọc vào một block data khác đưa vào cache. khi đó việc truy xuất data sẽ nhanh hơn nhiều.
Trong kỹ thuật vi xử lý cache còn là nơi chứa các tập lệnh. Giả sử bạn hình dung thế này nha:
Nếu bạn nhờ ai làm đó là cho bạn 10 công việc. Bạn có thể lực chọn 2 cách:
1 - Nhờ người ấy làm từng việc tuần tự, hết việc này xong rồi đến việc khác
2 - Dặn người ấy 10 việc một lượt rồi ngồi chờ thành quả của 10 công việc (trong thời gian này bạn sẽ làm được nhiều việc khác)
Qua 2 cách bạn thấy cái nào hiệu quả hơn?
Vì vậy mà nếu một bộ vi xử lý có cache lớn sẽ làm việc nhanh hơn (hiệu quả hơn) một bộ vi xử lý cùng loại có cache nhỏ
...
Chính vì vậy mà bạn sẽ biết vì sau phải dùng cache rồi phải không!
Bộ nhớ ảo là bộ nhớ không có thực khi một thiết bị đang tồn tại trong trạng thái nghỉ!!! Vậy thì nó ở đâu? Thế này nhé, nó sẽ sinh ra trong quá trình hoạt động.
Ví dụ nha : Một máy tính có bộ nhớ RAM 2G. Khi tắt máy bạn cũng thấy có sự tồn tại của 2G này (là cây RAM đó mà). Nhưng khi hoạt động máy có thể sẽ có bộ nhớ 4G! vậy 2G này là gì? Là bộ nhớ ảo đấy. Bộ nhớ ảo lúc này là một phần trên HDD.
Trong kỹ thuật số nói chung hay các thiết bị điện tử số nói riêng. Bộ nhớ ảo hình thành theo ý đồ người thiết kế hay người lập trình điểu khiển.
Vậy thì đâu là ưu điểm của "ông ảo" này.
Ví dụ : Khi ta xử lý một việc gỉ đó đôi lúc vì độ lớn thông tin của công việc sẽ làm ta rối và không kham nổi. Nếu lúc đó có ai đó kế bên ta chia thông tin ra cho nguời này nhớ hộ rồi ta sẽ giải quyết từng bước công việc một mà ta lải không bỉ rối lên khi phải nạp quá nhiều thông tin. Ta chỉ có một cái đầu thật để nạp thông tin nhưng lại nạp có hạn, nhờ cái "đầu ảo" kế bên này (vì lúc không làm việc ta đâu có nó hay cần tới nó!!!) mà ta sẽ giải quyết được công việc đạt hiệu quả mong muốn.
Vậy thì nó có ưu điểm không bạn?
Chưa hẳn như vậy.
Cache là nơi trung chuyển thông tin, thường nó có tốc độ truy cập rất cao, được thiết kế tương thích với tốc độ bus của vi xử lý. ( level 1) Sau đó tùy theo ngoại vi nó sẽ có L2.
L1 thường tốc độ cao, dung lượng nhỏ.
L2 thường tốc độ thấp hơn, kích thước lớn hơn. ( lý do giá thành)
Hoạt động thì gần như Co_P.. đã nói.
Nhưng thực chất là nó hoạt động nhờ cơ chế DMA ( mới có tác dụng chính) trong khi CPU hoạt động ( tốc độ cao ) thì nó đọc từ ngoại vi ( chậm hơn nhiều lần vào cache) để CPU không phải đợi ngoại vi ( thường thêm waitstate vào chu kỳ T2 của CPU).
Ví dụ dễ hiểu.
Một vòi nước nhỏ giọt, một thanh niên khỏe lấy nước thì chờ hết chuyến này đến chuyến khác. Nếu ta thêm một cái thùng hứng sẵn ở đấy thì không phải chờ lâu. Nhưng thùng phải miệng to để đổ ra nhanh chứ thùng đổ ra nhỏ giọt thì k có ý nghĩa, cũng như cache tốc độ = RAM thì k ý nghĩa gì cả)
Ngày nay cach có tốc độ rất cao ( bus đến GHz) nên L1 thường thiết kế cùng với CPU trên 1 phiến silic. L2 cũng gắn ngay cạnh CPU ( tùy loại ). tốc độ L2 cũng đến 500MHz.
Đời cũ thường gắn trên board, tốc độ khoảng 200MHz. Dùng con cache trên main cũ làm thành RAM cho FPGA thật tuyệt, rẻ, nhanh ( cache thực chất là RAM tĩnh tốc độ cao). Thường là loại 2 đến 5 ns.
Bộ nhớ ảo.
Đấy là một công nghệ được hỗ trợ bới CPU chứ không lệ thuộc vào bất kỳ phần mềm nào hay anh kỹ sư lập trình nào cả ( ngoại từ init chế độ hoạt động cho nó, cái này trong kernel của OS làm)
Thử hỏi có ông nào lập trình cho con MCU ( không có MMU bên trong) có bộ nhớ ảo được k? Chỉ có ông lập trình ảo thôi.
Các dòng CPU 386 hay tương đương như 683xx mới bắt đầu hỗ trợ công nghệ này. Chính xác hơn là do MMU trong nó trực tiếp quản lý. Nó liên quan đến kỹ thuật đánh địa chỉ của CPU.
Nó dùng các bảng mô tả để quản lý các phân đoạn và từ địa chỉ logic MMU tính ra địa chỉ vật lý.
Có 2 trường hợp xảy ra.
Nếu địa chỉ nằm trong vùng vật lý thì hoạt động bình thường.
Nếu không trong vùng vật lý. Một yêu cầu ngắt được sinh ra, Lúc này CPU nhờ OS làm tiếp là xem nó ở đâu. Thường dùng là HDD với máy tính còn chuyên dụng thì chưa chắc như vậy nếu không có HDD. Lúc này OS với quyền ưu tiên cao hơn ( L 1) sẽ giải phóng bớt bộ nhớ vật lý và tìm chỗ nó lưu nội dung để copy vào bộ nhớ vật lý. Sau đó nó quay lại chỗ yêu cầu truy nhập vùng nhớ sửa lại bảng mô tả. Lúc này chương trình lại chạy trên bộ nhớ vật lý thật. Tóm lại là sau vài us chương trình kia tạm dừng, sau đó lại có vùng vật lý để chạy. Về mặt lập trình coi như vẫn có đủ chỗ để lưu data hay code. Nhưng thực tế có ít vùng vật lý hơn nên được gọi là bộ nhớ ảo.
Ưu điểm.
Ít tiền mà có dung lượng lớn.
Nhược. Chạy chậm, nhanh teo ổ cứng vì HDD làm việc liên tục. Để ý WINDOWS nó xài HDD liên tục, không làm gì thỉnh thoảng HDD cũng chạy một tý.
Với anh DOS ngày xưa không xài visual mem thì nếu không có yêu cầu truy xuất vào HDD. HDD chẳng phải làm gì có thể về IDLE mode.
Nếu bạn học kiến trúc máy tính thì rõ ngay, mà k rõ bây giờ thày còn dạy nữa không hay chỉ toàn trên mây.
Cái Visual mem k cần trên PC mà mình vẫn chạy trên 128K FLASH và 128K RAM với CPU là 386.
Thank các bác, giải thích chi tiết quá. Em xin phép đào mộ phát。
Bác MinhHa ơi cho em hỏi 1 tí là cái visual mem mà bác nói ở trên có phải để chỉ bộ nhớ ảo không ạ?
Nó là Virtual Memory chứ bác nhỉ, tại em search GG thấy Visual memory cũng có nên hoang mang quá ah.
Mình có đọc ở đâu đó nói rang bộ nhớ ảo trên máy tính còn có nhiệm vụ "đánh lừa " phần mềm rằng vùng nhớ mà phần mềm đang chạy và sử dụng là một vùng nhớ liên tục.
Ví dụ khi ta khai báo 1 mảng, về nguyên tắc thì các phần tử là liên tiếp nhau nhưng thực thế không phải lúc nào cũng được như vậy. Bộ nhớ ảo sẽ có chức năng tạo một vùng nhớ lien tục để phần mềm có thể chạy bình thường. Mỗi địa chỉ trên bộ nhớ ảo sẽ được ánh xạ sang một địa chỉ nào đó trên RAM.
Về lý thuyết hệ điều hành thì đúng như vậy : phần quản lý bộ nhớ của nhân Linux và lõi hệ điều hành BSD Unix chia bộ nhớ thành các trang (page), thường là 4 KB. Mỗi trang bộ nhớ có thể nằm trong RAM, trên ổ cứng, trong cache của CPU ... Sau đó chính phần quản lý này lại nối các trang bộ nhớ thành một không gian nhớ ảo duy nhất (virtual memory address) và trình bày nó với phần mềm. Nhìn từ góc độ phần mềm thì chỉ thấy một không gian bộ nhớ to đùng được đánh địa chỉ thống nhất (32 bit hoặc 64 bit) mà không cần biết thực sự cái trang bộ nhớ nằm ở đâu.
Còn đối với người dùng thì chỉ có 2 loại bộ nhớ : bộ nhớ thực RAM và bộ nhớ ảo nằm đâu đó ở thiết bị lưu trữ. Đĩa cứng, SSD, USB được coi là thiết bị lưu trữ chứ không phải bộ nhớ.
Em đang tìm hiểu cách xây dựng chương trình điều khiển động cơ Servo Yaskawa bằng máy tính tuy nhiên khi tìm kiếm trên mạng các hướng dẫn thì thường là điều khiển bằng vi điều khiển hoặc điều khiển bằng PLC hay điều khiển động cơ...
Hai lớp dán mặt trước và mặt sau, gọi là film phân cực. Muốn hiểu rõ về nó thì chịu khó search nhé. Ở đây có rất nhiều chó cứ ngửi thấy phân là sủa nhặng, nên không giải thích nhiều....
Mọi người ơi cho em hỏi cái này ạ, hiện tại em đang làm btl về hiển thị giá trị nhiệt độ trên led 7 thanh sử dụng atmega16, code em chạy trên mô phỏng rất oke nhưng khi lắp qua mạch thực thì bị lỗi ở led đầu tiên bị lỗi như thế này...
Nhờ cả nhà tìm giúp mình thông tin IC này với, thấy ghi 943B W58BAL mà mình tìm mấy ngày nay không được, nó được đóng gói dạng TSSOP 8. Cám ơn cả nhà....
Cảm ơn bạn đã chia sẻ câu chuyện và quá trình phát triển sản phẩm của mình. Trước tiên, thật may mắn khi bạn vượt qua tai nạn và vẫn giữ được niềm đam mê cũng như khả năng sáng tạo trong lĩnh vực kỹ thuật. Việc bạn tiếp tục...
Bạn nên nghiên cứu cái chấn lưu đèn ống Compact fluorescent lamp hay đèn compact trước đã. Nó rẻ đỡ tốn kém.
Sau khi hiểu rõ rồi thì chuyển sang cái mạch này.
Ở cái chấn lưu, tần số của nó linh tinh lắm, tùy điện áp nguồn, tùy...
Comment