나는 항상 레지스터가 CPU registers
이라고 들었다. 다른 장치 나 하드웨어에도 디코더 하드웨어, 디스플레이 장치, DMA 컨트롤러와 같은 자체 레지스터가 있습니까?장치에 레지스터가 있습니까?
그렇다면 instruction execution
에 필요한 경우 해당 장치 레지스터에 저장된 값이 CPU 레지스터로 전달되는 방식은 무엇입니까? 가능하다면 실례를 들어 설명해 줄 수 있습니까?
나는 항상 레지스터가 CPU registers
이라고 들었다. 다른 장치 나 하드웨어에도 디코더 하드웨어, 디스플레이 장치, DMA 컨트롤러와 같은 자체 레지스터가 있습니까?장치에 레지스터가 있습니까?
그렇다면 instruction execution
에 필요한 경우 해당 장치 레지스터에 저장된 값이 CPU 레지스터로 전달되는 방식은 무엇입니까? 가능하다면 실례를 들어 설명해 줄 수 있습니까?
일부 장치에는 전용 레지스터가 있고 다른 장치에는 전용 레지스터가 없습니다. 다른 것들 중 일부는 실제로는 존재하지 않아도 "등록"카테고리에 집중되는 등록과 같은 구성 요소를 가지고 있습니다.
장치와 나머지 시스템 간의 I/O는 포트 기반 IO (일반적인 메모리 액세스와 비슷하지만 별도의 시스템), 메모리 기반 IO (특정 장치와주고받을 수있는 주소), 직접 메모리 액세스 (장치가 메모리 버스를 통해 시스템 메모리에 자율적으로 액세스 할 수있는 제어 주소)로 구성됩니다.
mine의 친구가 Port IO 기반 SATA HDD 드라이버를 작성했지만, 대부분의 최신 OS는 CPU 사용량이 적기 때문에 DMA를 사용합니다.
자체 처리 장치가 포함 된 그래픽 카드와 같은 장치는 처리에 사용되는 참 레지스터를 포함합니다. 내가 아는 바로는 프로세서는 직접 사용할 수 없지만 프로세서는 (아마도 포트 기반 IO와 DMA의 조합을 통해) 실행 가능한 데이터를 GPU에 제공하여 GPU가 실행하고 GPU에 저장할 수 있습니다. DMA를 통해 액세스 할 수있는 온보드 장치 메모리에 계산 결과를 저장합니다.
물론입니다. 단어 등록기의 정의를 찾아보십시오. 사운드 카드 또는 칩에는 볼륨을 제어하는 데 사용되는 하나 이상의 레지스터가 있습니다. 단일 메모리 또는 I/O 트랜잭션으로 작성된 개별 레지스터
대부분의 주변 장치에는 레지스터가 있으며 일부는 메모리 뱅크를 가지고 있습니다. 일부 메모리는 레지스터를 사용하여 한 번에 한 항목 씩 액세스됩니다 (오프셋 레지스터에 오프셋 쓰기, 데이터 레지스터를 사용하여 데이터 쓰기 또는 읽기, 반복) 또는 메모리 뱅크가 어떻게 든 호스트의 메모리 공간에 매핑됩니다. 사운드 카드 나 비디오 카드에 대해서 생각해 보면, 개별 레지스터는 다양한 것들, 너비, 높이, 깊이, 주파수 등을 제어하는 데 사용됩니다. 사운드 카드의 경우 믹서 컨트롤 등은 레지스터를 통해 이루어집니다. 비디오 데이터, 픽셀, 문자, 텍스처 등을 비디오 메모리 또는 gpu로 옮기는 작업은 호스트 주소 공간에 매핑되는 메모리 뱅크를 통해 수행 할 수 있습니다. 주변 장치의 메모리 양이 가용 호스트 주소 공간의 뱅크보다 클 때 주변 장치의 레지스터를 사용하여 호스트 주소 공간의 구멍을 통해 사용 가능한 주변 메모리 뱅크를 제어하는 경우가 있습니다.
cpu 프로세서의 레지스터는 종종 주소와 데이터 버스 및 읽기/쓰기 제어 신호가있는 sram을 사용하여 구현된다는 사실을 알 수 있습니다.