문제

사전 정보 :

누군가 가이 줄을 따라 무언가를 물어 보았을 것이라고 확신하지만, 어떻게해야하든 상관없이 확실한 답변을 찾을 수 없습니다

질문 :

램은 CPU가 요구하는 데이터의 양에 대해 몇 가지 징후를 얻을 수 있으며 설정된 양의 데이터가 있거나 CPU가 더 필요하면 다시 전화해야합니다 (및 데이터는 데이터를 설정하는 것) < / P>

캐시 미스 동안 CPU는 적어도 단일 캐시 라인 (32, 64 또는 128 바이트)이 필요합니다. CPU가 RAM을 여러 번 쿼리해야합니다 (세트 금액이 8 바이트 가정을 가정하면 RAM이 전화 당 더 많은 데이터를 반환합니까? 아니면 RAM이 얼마나 많은 데이터가 필요한지에 대해 알림을받는 방법이 있습니까?

CPU는 동일한 메모리 블록에서 나중에 더 많은 데이터가 필요할 경우 RAM의 긴 요청을 피하기 위해 단일 캐시 라인보다 더 많은 전화를 걸 수 있습니다.

추가 점수 :

알고 있고 더 많은 정보를 제공하는 경우 다음과 같은 엑스트라도가 나에게 관심이있을 것입니다 :

  • CPU에 따라 다르 으면 (세대의 차이가 흥미로울 수도 있지만, 해당 정보를 추가하면 비슷한 세대를 건너 뛰십시오)
  • ram type
  • 에 따라 다르 으면
  • CPU가 다른 크기의 캐시 라인이나 블록 크기를 요청할 수있는 방법 (RAM이 블록 또는 캐시 라인의 크기의 고정 된 크기를 반환하면 적용됨)
  • 다른 유용한 관련 정보 또는 추가 읽기를위한 자원

잠재적 인 답변 :

나는 RAM의 전송 속도를 볼 때 대답에 대한 단서를 발견 한 것으로 보인다. 특히 사양에서의 전송 속도를 계산하는 방법 및 "DDR SDRAM 프리 페치 아키텍처"에서의 전송 속도를 계산하는 방법을 나타내는 것은 64 비트의 수를 나타냅니다. 블록 "RAM에 대한 호출 당 요청할 수 있습니다 (예 : DDR3 및 DDR4, DDR1의 경우 4, DDR1 용 2 용 4, DDR1 용 2 및 DDR1 용 2 및 DDR1 용 2 및 DDR1)

도움이 되었습니까?

해결책

대부분의 현대적인 하드웨어에서 주 메모리는 주변 장치와 같습니다.

다음은 인텔 -sque PC-ISH 하드웨어이지만 다른 시스템에서 매우 유사합니다.

초기 부팅 중에 전원이 먼저 적용될 때 CPU에는 캐시, 펌웨어 및 일부 메모리 매핑 I / O 만 있습니다. 첫 번째 작업 중 하나는 "메모리 컨트롤러"또는 "Memory Controller Hub"(노스 브리지의 일부분의 PC 하드웨어에서)로 전통적으로 알려진 외부 하드웨어를 초기화하는 것입니다.

나는 "RAM 모듈"이라고 말하기 때문에, 내가 말했듯이 말했듯이. 하드웨어는 모듈에 얼마나 많은 메모리가 있음을 묻고 메인 메모리로 데이터를 전송하는 데 사용할 프로토콜의 세부 정보를 협상합니다.

다른 현대적인 주변 장치와 마찬가지로 현대적인 RAM 모듈은 읽기 및 쓰기를 버릴 수 있습니다. 즉, 하나의 전송 작업을 사용하여 메모리의 더 큰 "블록"을 읽고 쓸 수 있습니다. 따라서 "마지막"수준의 캐시의 동일한 캐시 라인 크기가 하위 레벨 캐시로 작동하는 경우에도 더 큰 데이터 블록과 RAM에서

을 전송할 수 있습니다.

이것은 메모리 블록을 통해 선형 스캔과 같은 조작을 수행 할 때 유용한 최적화입니다. CPU와 캐시 컨트롤러의 일부 조합은이를 감지 할 수 있으며 해당 정보를 사용하여 RAM에서 프리 페치를 발급합니다.

다른 팁

RAM은 데이터가 CPU (실제로 MMU)로 이동할 수있는 요청을받습니다.데이터는 캐시 라인 단위로 이동합니다.

현재 캐시 라인을 완전히로드하려면 RAM에서 캐시까지의 두 개 이상의 전송이 필요하다는 캐시 크기가 매우 커집니다.RAM에서의 읽기는 RAM이 읽을 데이터의 주소를 수신 한 다음 실제 전송 시간에 시간을 보내고 RAM을 수행하기 위해 RAM에 4 개의 전송이 4 개의 임의의 메모리 위치에 액세스하는 것보다 훨씬 빠릅니다.

일부 프로세서는 캐시 라인의 다른 부분을 전송하기 위해 RAM을 알릴 수있는 기능이 있습니다.캐시 라인을 채우기 위해 필요한 네 가지 이전이 필요하다고 말하면 실제로 필요한 분기 캐시 라인을 먼저로드하고 나머지 나머지를 채우십시오.

캐시 라인을 부분적으로 채우는 것이 가능할 것입니다 (그리고 첫 번째 하나를 완전히 채우는 대신 다른 캐시 라인을 채우십시오).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top