포스팅에 들어가기 전에 intel의 경우에는 Intel Celeron m 575, ARM 사의 경우에는 ARM Cortex – A8을 비교설명 할 것이다.
보통 ARM 사의경우 애플의 M1 칩이 일반적이지만, M1의 경우 CPU, GPU, 신경망가속기 등 다양한 회로가 포함된 SoC 칩이기 때문에 Intel processor와 단순 비교 대상이 될 수 없다고 판단하여 ARM Cortex – A8을 선택하였다.
‘Intel Celeron m 575’은 Pentium계열인 Celeron의 프로세서 번호가 575이자 출시일이 2006년도 3분기인 intel의 마이크로프로세서이다. 또한 모바일, PC를 대상으로 모델이며 intel의 마이크로프로세서 계열인 x86의 프로세서중 하나이자 64비트를 지원한다.
Merom의 아키텍처를 기반으로 하고 있지만 CPU의 성능을 판단할수 있는 코어의 개수가 1개인 단일코어(single core)이다. 오래전에 나온 마이크로프로세서 모델이다보니 하나의 코어에 두 개 스레드가 붙는 Intel사의 최근 기술인 하이퍼스레딩의 적용하지 않고 ‘1개의 코어에 1개의 스레드’ 제품인 동시에 프로세서의 기본 주파수는 2.00GHz이다. 또한 집적 회로 제조에서 사용된 반도체 기술인 리소그래피는 65nm으로 이는 해당 모델이 나온 시대의 관점에서 보면 경쟁사 AMD, IBM, TSMC 등등에서 나온 반도체 크기와 비슷하다는 것을 보면 크기 면에서는 뒤쳐지지 않는다는 것을 알 수 있다.
소켓은 모바일용 intel core2시리즈인 ‘소켓P(PPGA478)’를 사용하였고 코어를 비롯하여 다른 기타 마이크로프로세서 간에인터페이스 FSB의 frequecy는 667MHz인데 이는 해당 모델이 클럭사이클이 4지점이 되었을 때 상승, 하강 edge에서 데이터가 전송이 되기 때문에 가장 효율적인 속도이며 bus 주파수는 166.23MHz이다. 오버클럭과 관련된 ‘CPU multiplier’는 12이다. 코어와 메인메모리의 병목현상(속도차이가 원인)을 줄이기 위한 Cache(캐시)의 L2는 1MB 4-way set associative insturction cache로 출시되었으며 동시에 ’Non inclusive Direct mapping’ 이고 L1캐시는 8-way set associative instruction cache, 8-way set associative write-back data cache로 모두 32KB이자 ’Direct-mapping’이다. 이는 서로 다른 주소가 같은 Index를 가리키는 경우 발생할 수 있는 ‘Ping-pong’문제를 Index가 가리키는 블록을 여러개 설정하여 해결하였다는 것으로 L2는 Index가 가리키는 공간이 4개이며 같은 말로 L1은 8개라는 것이다. 또한 L1캐시의 경우 ’Direct-mapping’을 하기 때문에 캐시와 메인메모리를 같은 크기로 나누어 순서대로 매핑을 한다. 반면에 L2캐시의 경우 지원을 하지 않기 때문에 해당이 되지 않는다.
트렌지스터의 수는 2억 9100만개이고 프로세서에 의해 낭비되는 평균 전력을 뜻하는 말인 TDP는 31W이다. 프로세서가 작동이 될수 있도록 설계가된 최대전압 최소 전압은 각각 1.30V, 0.95V이다. 그리고 통합 그래픽은 없다는 것에서 이후 나오는 Celeron m버전들과 차이가 있다.
Cortex-A8은 ARMv7-A기반의 2005년도 중반기에 발표한 A시리즈의 첫 번째 마이크로프로세서이다. 이는 32비트 라이선스 코어이며 전작인 ARMv6가 기반인 ARM11 아키텍쳐와 비교를 하면 컴파일러가 같이 실행할 명령어를 묶어 복수의 pipeline을 통하여 한 클럭에 2개의 명령어들을 처리할 수 있도록 하는 2 Issue in order 슈퍼스칼라 구조를 도입하였다는 것과 NEON SIMD의 지원으로 클럭 당 데이터를 처리하는 호율을 높였다.
ARMv7-A 아키텍처를 기반으로 설계된 모델 Cortex-A8은 CPU의 성능을 판단할수 있는 코어의 개수가 1개며 최대클럭이 1GHz로 동작한다. 또한 하나의 프로세서는 하나의 스레드를 사용하는 싱글 스레드를 기반으로 하기 때문에 이는 작업을 순차적으로 실행한다. 또한 반도체의 크기는 65nm로 해당 시대의 관점으로 보게되면 크기 면에서는 평균 또는 그 이상의 공정기술이라는 것을 알 수 있다. 또한 VFPv3기술을 사용하여 레지스터의 수를 이전 아키텍처(VFPv2)에 비해 두 배로(16->32) 늘였고 레지스터에 소수점(부동, 고정)과 관련된 명령어를 추가로 도입하면서 ALU연산에 대하여 호율을 높였다. 따라서 2000DMIPS의 프로그램을 처리할 수 있다.
CPU같은 디지털 집적회로 속도를 높이기 위해 설계기법 파이프라인이 13단계로 구성이 되어 있으며 여기에는 NEON SIMD구조가 내장이 되어져 있다. SIMD란 명령어 하나로 여러개의 데이터(값)을 동시에 계산하는 방식으로 데이터 처리에 호율을 높이는 기법인데 NEON SIMD는 ARM에서 직접 개발한 64/128비트 복합 SIMD 기술로 NEON용 load/store 장치와 ARM용 load/store 장치가 따로 있으므로 자체실행 파이프라인을 가지기 때문에 이전의 SIMD보다 더 향상된 성능을 수행한다. ARM의 마이크로프레서 계열인 Cortex-A에는 현재 이 기술이 적용이 되어있으며 해당 제품또한 A게열이기 때문에 데이터처리(값 연산, 부동소수점 연산, 정렬)등등에서 다른 경쟁사 제품에 뒤처지지 않는다.
코어와 메인메모리의 병목현상(속도차이가 원인)을 줄이기 위한 Cache(캐시)의 L2캐시는 전력 호율 및 최적의 성능을위해 코어에 통합이 되었고 8-way방식이자 0K~1MB ’로 다양하게 구성이 가능하고 L1 data 캐시는 32KB로 4-way, L1의 instruction 캐시는 32KB로 되어있다. L1의 데이터 캐시가 4-way방식이기 때문에 명령에 대하여 서로 다른 주소가 같은 Index가 가리키는 블록을 4개를 설정하여 ‘Ping-pong’문제를 해결한다. 또한 hash 방식 결정과 최소 접근 대기시간을 결합여 전력소비를 최소화하며 동시에 성능을 최대화 한다.
두 개의 메모리를 하나의 버스로 사용하는 800MHz~1GHz 클럭의 200MHz 듀얼버스이다. 하나의 프로세서가 작동이 될수 있도록 설계가된 최대전압 최소 전압은 각각 1.2V, 0.9V 이고 THUMB-2명령어를 사용하여 이전에 Exception처리를 하지못했던 것을 ARM명령어 상태에서 할수 있도록 지원하였고 CPU가 메모리에 접근할 때 관리를 하는 장치인 MMU를 통하여 모바일 기반의 해당 제품특성상 다양한 애플리케이션에 접근을 할 수 있도록 하였다.
intel사의 마이크로프로세서 모델 ‘Celeron m 575’와 ARM사의 마이크로프로세서 델 ‘Cortex A8’의 출시일은 각각 2006년 2005년으로 비슷한 시기에 출시된 마이크로프로세서이다. ‘Celeron m 575’은 모바일, PC버전을 대상으로 만든 모델이며 ‘Cortex A8’는 모바일을 대상으로 만들었다는 것에서 모바일 부분에서도 두 개 모두 적합한 모델이다.
‘Celeron m 575’과 ‘Cortex A8’는 각각 64비트 32비트 라이선스 코어라는 것에서 차이가 나며 CPU의 성능을 판단할수 있는 코어의 개수가 1개인 단일코어(single core)이다. 또한 전자는 Intel의 최초의 모바일 아키텍쳐인 Merom의 아키텍처를 기반으로 하여 발열이 작고 전력을 작게 낭비하고, 후자 역시 ARMv7-A를 기반으로 하여 저전력이며 두 개 모두 65nm공정이다.
CPU의 성능을 평가하는 것에 중요하게 작용이 되는 Bus의 Clock speed또한 차이가 나는데 ‘Celeron m 575’의 경우에는 667 MHz의 속도이며 bus 주파수는 166.23MHz이다. ‘Cortex A8’는 두 개의 메모리를 하나의 버스로 사용하는 800MHz~1GHz 클럭의 버스 주파수가 200MHz인 듀얼버스이다. ‘Cortex A8’가 ‘Celeron m 575’ 보다 bus speed에서 약 133MHz이상 높게 평가가 된다.
최대 및 최소 전력에서도 차이가 나는데 ‘Celeron m 575’는 최대 전력이 1.30V이고 최소 전력이 0.95V이다. ‘Cortex A8’의 최대 전력은 1.2V이고 최소 전력은 0.9V이다. 최대 전력에서는 ‘Celeron m 575’가 ‘Cortex A8’보다 0.1V더 높고 최소 전력에서는 0.05더 높다. 따라서 프로세서가 작동되도록 설계된 최대 전압과 최소 전압을 말하는 VID 볼트 범위또한 차이가 난다는 것을 알 수 있다.
캐시를 비교하면 다음과 같다. 먼저 ‘Celeron m 575’과 ‘Cortex A8’은 L1, L2캐시로 총 2개의 캐시인 것과 서로 다른 주소가 같은 Index를 가리키는 경우 발생할 수 있는 ‘Ping-pong’문제를 Index가 가리키는 블록을 여러개 설정하여 해결하는 방식인 n-way방식을 사용했다는 것, 그리고 L1캐시, L2캐시에 지원하는 캐시크기가 같다는(각각 32KB, 1MB) 공통점이 있다. 그러나 ‘Celeron m 575’의 경우에는 L1캐시가 8-way set associative instruction cache, 8-way set associative write-back data cache로 모두 32KB인데 ‘Cortex A8’는 L1캐시가 4-way set associative cache structure이며 L2캐시에 대해서는 각각 4-way set associative cache, 8-way set associative cache이다. 밖에 위치한 L2캐시에 비하여 L1 캐시는 CPU안에 내장이 되어있기 때문에 CPU가 제일 처음 요청하는 데이터를 요청할 때 가장 먼저 조사를 한다. 이때 ‘Celeron m 575’은 8개의 way에서 병렬로 찾는다. 하드웨어 구성이 복잡해서 hit time은 약간 증가하지만 miss rate는 감소한다. 반면 ‘Cortex A8’는 4개의 way에서 병렬로 찾는기 때문에 miss rate에서는 다소 불리하지만 이를 보완해서 L2의 캐시가 코어에 내장이 되어있는 통합 L2 캐시이며 ARMv7-A 아키텍처기술인 NEON SIMD의 지원으로 데이터 처리에 호율을 높였다.
명령어 set에서도 차이가 있다. ‘Celeron m 575’는 하나의 명령어를 동일한 형태, 구조의 명령어를 한번에 처리하는 병렬처리기법으로 MMX, SSE, SSE2, SSE3를 사용하였고 ‘Cortex A8’는 자체 ARMv7-A의 기술인 NEON으로 명령어를 처리하였다. ‘Celeron m 575’의 경우에는 MMX기술에 128bit SSE를 추가하여 SIMD 명령어 그리고 추가의 전용 레지스터를 통하여 부동소수점 처리 및 여러 프로그램을 한번에 처리하였다. ‘Cortex A8’는 68bit 또는 128bit의 자체적으로 개발한 복합 SIMD를 통하여 자체 실행 파이프라인과 ARM의 레지스터 bank와 동시에 별도의 레지스터 사용하였다. 따라서 따라서 연산과 데이터 처리의 능력을 향상시켰다.
근래의 운영체제는 여러 가지 프로그램을 동시에 실행하기를 원하기 때문에 하나의 cpu가 여러개의 cpu가 있는것처럼 실행을 하는 시분할 기법을 사용한다. 그러나 Celeron m 575’과 ‘Cortex A8’는 2000중반에 출시된 모델로 이러한 가상화 기법을 적용하지 않았다는 것에서 또한 공통점을 찾을 수 있다.
intel사의 마이크로프로세서 모델은 자료가 많아서 접근하기 쉬었지만, 애플의 경우 M1이 아닌 생소한 ARM Cortex – A8자료를 찾고 분석하기에는 많이 힘들었다. 그래도 학과 교수님께 메일을 보내며 계속 여쭤보았고, ARM사의 예전 공식 자료들을 살펴보며 비교한 결과 성공적으로 포스팅을 마무리 할 수 있었기 대문에 좋은 경험이 되었다.
<참고자료>
Intel 데이터 센터 솔루션
https://ark.intel.com/content/www/kr/ko/ark/products/36680/intel-celeron-processor-575-1m-cache-2-00-ghz-667-mhz-fsb.html
cpu월드
https://www.cpu-world.com/CPUs/Celeron_M/Intel-Celeron%20M%20575%20LF80537NF0411M.html
NOTEBOOK CHECK
https://www.notebookcheck.net/Intel-Celeron-M-575-Notebook-Processor.36779.0.html
나무위키
https://namu.wiki/w/ARM%20CortexA%20%EC%8B%9C%EB%A6%AC%EC%A6%88#s-2.3
위키피디아
https://en.wikipedia.org/wiki/Comparison_of_ARMv7-A_cores
보안 개발자 블로그 – 개인연구/병렬프로그래밍
https://rkfka4370.tistory.com/12
cpu정리사이트
https://www.7-cpu.com/cpu/Cortex-A8.html
element l4
https://community.element14.com/products/devtools/technicallibrary/w/documents/9927/arm-cortex-a8-overview
arm developer
https://developer.arm.com/documentation/ddi0344/k/level-2-memory-system/cache-organization