2017-05-14 10 views
1

메모리 읽기 및 쓰기 CPU 명령어 (프로그램 가져 오기 읽기 명령어 포함) 사이의 백분율을 찾고 싶지만 이러한 통계를 찾을 수 없습니다. 그럴듯한 양은 1 명령 읽기, 1 데이터 읽기, 1 데이터 쓰기 일 수 있습니다. 따라서 쓰기와 비교할 때 읽기는 2/1이 될 수 있습니다. 그러나 그것은 내가 가정 한 것보다 높아야합니다 (3/1과 같은 것). 그 정보 는요?CPU 읽기 및 쓰기 명령어 (프로그램 읽기 포함)

+0

이것은 실제로 수행하는 작업의 종류에 따라 다릅니다. 배열을 요약하거나 내적 제품을 수행하는 것은 모두 읽기입니다. 데이터 복사는 1 : 1 등과 같습니다. – Leeor

+0

분명하지만 데스크톱 사용자의 사용과 관련하여 "평균"사용자 통계가 있어야합니다. . 최소한 생각할 수있는 것. –

답변

2

헤네시와 패터슨의 컴퓨터 아키텍처 :는 MIPS 다섯 SPEC CPU2000 정수 벤치 마크 (간격, GCC, GZIP, MCF, perlbmk)에 대한 통계를 제공하는 양적 접근 :

  % loads % stores 
gap   26.5  10.3 
gcc   25.1  13.2 
gzip   20.1  5.1 
mcf   30.3  4.3 
perlbmk  28.7  16.2 

당신이 볼 수있는 바와 같이, 괜찮은 어림짐작은 지시의 대략 4 분의 1은 짐이고 짐의 반에는 많은 상점이있다.

정수 워크 스테이션 벤치 마크 중에서도 상당한 차이가 있음을 알 수 있습니다.

ISA 및 컴파일러의 영향 (및 최적화 수준 선택)은이 통계에서 볼 수 없습니다. 복잡한 명령어의 가용성은 실행 된 명령어의 수를 줄이는 경향이 있습니다. 더 높은 컴파일러 최적화 하에서 많은 수의 레지스터들은 메모리 트래픽의 양을 감소시키는 경향이있다.

컴파일러 최적화를 통해 실행 된 명령어의 수를 줄이거 나 (예 : 루프 언 롤링으로 분기 명령어를 제거 할 수 있음) 또는 증가시킬 수 있습니다 (예 : 상수로 곱셈을 시프트 및 덧셈으로 감소시키는 강도, 예상치 못한 분기를 조건부 이동으로 대체 증가 명령 수). 컴파일러 최적화는로드 타임과 스토어의 수를 줄이거 나 (예 : 링크 타임 코드 생성이나 인라이닝에서 확장 된 생명 정보를 사용하여 더 나은 레지스터 할당)로드 또는 스토어의 수를 늘릴 수 있습니다 (예 :로드 및 작동 명령어를 사용하면 루프의 소프트웨어 파이프 라이닝이 작업 대기 시간을 완전히 숨길 수 있도록 압력을 등록하십시오.

+0

고마워,하지만 난 책을 다운로드하고 빨리 (700 페이지) 보았고 관련 페이지를 찾을 수 없습니다 ... 도와 주시겠습니까 ... –

+0

아이디어는 우리가 더 느린 writting (예 : 읽기 속도의 절반) 쓰기 명령 (프로그램 읽기 및 데이터 읽기가 동일하게 유지되는 동안) 전체 속도에 미치는 영향은 무엇입니까? 네가 말한대로 1/4은 1/8 쓰기와 5/8 프로그램을 읽는다. 이 경우 시스템은 1/8 만 지연됩니다. –

+0

@ GeorgeKourtis 4 판에서 표는 부록 B (그림 B.27)에 있습니다. 쓰기가 버퍼링 될 수 있기 때문에 쓰기 속도는 대개 중요하지 않습니다. –