티스토리 뷰

arm


The long arm of the law finally caught up with Gert. 경찰은 마침내 거트를 따라잡았다.

You can't escape the long arm of the law (= the police will catch you if you have done something illegal). 당신은 법망으로부터 탈출할 수 없다.

(= 만약 당신이 불법을 저지른다면 경찰이 당신을 잡을 것이다.

)You'll never get away with leaving work early; the long arm of the law is bound to catch you. 당신은 일찍 일을 손에서 놓고 도망치지 못할 것이다; 경찰이 당신을 틀림없이 잡을 것이다.

참고한 사이트) http://idioms.thefreedictionary.com/long+arm+of+the+law http://dictionary.cambridge.org/dictionary/english/long-arm-of-the-law http://www.macmillandictionary.com/dictionary/british/the-long-arm-of-the-law http://www.dictionary.com/browse/long-arm-of-the-law--the 인수 금액은 15일 종가 기준 43%의 프리미엄이 붙은 주당 17파운드로 결정되었다고 합니다.

ARM은 2015년 매출이 14억 8900만 달러 수준인 점을 생각하면 엄청난 가격의 인수라고 할 수 있습니다.

?? ARM은 영국의 애플이라고 불리던 아콘 컴퓨터에서 CPU부분을 독립시킨데서 시작한 회사입니다.

IT 에 대한 지식이 있으신 분들은 이 회사의 CPU 아키텍처가 이제 임베디드, 모바일, 사물인터넷, 그리고 기타 IT 관련 장비에 널리 사용된다는 것을 알고 있을 것입니다.

삼성, 퀄컴, 애플의 모바일 칩이 모두 ARM의 라이센스로 제작됩니다.

그런만큼 매출은 크지 않더라도 업계에서 차지하는 비중은 매우 크다고 할 수 있습니다.

?? 따라서 ARM 인수설은 계속해서 나왔는데, 유력한 대상으로 인텔이나 삼성 등이 거론되기도 했습니다.

이 경우 가장 큰 시너지 효과를 볼 회사는 인텔입니다.

반도체 설계 회사와 생산 회사의 조합인데다 x86이에 ARM이라는 주요 아키텍처를 같이 소유하게 되니까요. 하지만 인텔이 ARM을 인수하게 되면 세계에서 가장 널리 사용되는 CPU 아키텍처 두 개를 한 회사가 소유하게 되는 셈이라서 즉시 유럽과 미국에서 반독점 혐의를 받을 만한 사안이라고 할 수 있습니다.

?? 솔직히 x86 시장은 이미 인텔의 독점상태이라 (일반 소비자용은 80% 이상, 서버용은 95% 이상) 만약 인텔이 ARM을 인수하려고 시도한다면 AMD를 인수하는 것과는 비교도 안되게 큰 파장을 불러일으킬 가능성이 높습니다.

이런 이유에서 인텔의 ARM 인수는 비용 문제를 떠나 가능성이 떨어진다는 이야기가 나오기도 했습니다.

?? 하지만 그렇다고 해도 소프트뱅크는 다소 의외의 조합이라고 말할 수 있습니다.

 이 회사는 반도체 생산 회사도 아니고 통신 서비스 부분이 중심인 회사이기 때문입니다.

사물 인터넷 부분에 집중한다는 전략은 그럴듯하지만, 과연 이런 엄청난 비용을 감수하고 ARM을 인수하는 것이 시너지 효과를 낼 수 있을지에 대해서는 의문을 품은 시각도 적지 않습니다.

삼성처럼 ARM과의 전략적 제휴만으로도 비슷한 효과를 낼 수 있지 않을까 하는 생각이 드네요. ?? 막대한 비용이 든 만큼 대규모 베팅이라고 할 수 있는데, 과연 신의 한수였는지 악수였는지는 몇 년 후에 윤곽을 드러낼 것이라고 생각됩니다.

다만 개인적인 의견은 너무 비싸게 인수했다는 것입니다.

과연 어떻게 투자금을 회수할 수 있을까요? ??? 참고  ?http://wccftech.com/softbank-arm-32-billion-tech-deal/  http://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=105&oid=001&aid=0008549859http://www.anandtech.com/show/10495/softbank-acquires-arm-in-24b-gbp-deal (물론 10nm 공정으로 인한 향상을 포함해서) 이전 포스트 :  http://blog.naver.com/jjy0501/220714540459 A73 이라는 명칭은 A72 대비 엄청난 차이가 없다는 것을 의미하는 것 같지만, 이 아키텍처를 분석한 아난드텍에 의하면 사실은 상당한 변화가 있다고 합니다.

A72는 성능 향상을 위해서 많은 것을 갈아치웠지만, 오히려 A73은 전력 대 성능비 증가를 위해 기존의 것을 가져온 프로세서이기 때문입니다.

  이 프로세서는 ARM의 프랑스 설계팀인 소피아 패밀리에 속하는 프로세서로 A12, A17의 후계자라고 할 수 있다고 합니다.

3-wide decoder를 장착한 A72와는 달리 A73은 2-wide decoder로 돌아가면서 더 작고 효율적인 프로세서가 되었다고 하네요. 물론 그만큼 연산 능력이 줄어들지만, 전력 소모는 줄어들게 됩니다.

  A73은 최대 2.8GHz의 클럭으로 작동이 가능한데, 복잡한 구조를 단순하게 만든 만큼 CPU 코어 한 개 당 크기는 0.65㎟ 에 불과하다고 합니다.

(성능을 비롯한 모든 지표는 10nm 공정 제품을 기준으로 설명) 모바일에서는 크기와 더불어 전력 효율성이 중요하므로 이런 설계 변화를 시도했을 것입니다.

  매우 작은 크기로 돌아온 만큼 A73은 다수의 코어나 혹은 CPU가 큰 면적을 차지하지 않는 디자인의 어플리케이션 프로세서에 적합할 것으로 보입니다.

 (출처: ARM) 동시에 ARM은 새로운 Bifrost GPU 아키텍처도 공개했습니다.

새로운 GPU는 말리 GPU 그룹에서 가장 강력한 성능을 제공할 것입니다.

이 새로운 GPU 아키텍처는 다수의 쉐이더 코어를 쉽게 확장할 수 있다는 특징이 있습니다.

이를 통해 32 쉐이더 코어를 지닌 GPU도 가능합니다.

  물론 아키텍처 개선으로 인해 전체적인 에너지 효율성도 20% 정도 증가되었으며 (이전 세대인 Mali-T880 대비) 더 작은 공간에 더 많은 쉐이더를 집적할 수 있게 되었다고 합니다.

첫 제품은 Mali-G71이라는 이름으로 나올 예정입니다.

삼성전자와의 밀접한 관계를 감안하면 차기 삼성의 AP에 이 GPU가 탑재될 가능성도 있어 보입니다.

  이미 갤럭시 S7은 놀라운 GPU 성능을 보여준 바 있는데, 새로운 GPU를 이용해서 내년에는 더 강력한 모바일 게이밍 성능을 볼 수 있게 될 것으로 보입니다.

ARM의 주장으로는 기존 세대 대비 1.5 배라는 데 아키텍처 개선과 공정 개선이 모두 적용되면 실현 가능한 수준으로 생각됩니다.

  앞으로 ARM은 자사의 GPU 제품군에 Bifrost, Midgard, Utgard 등의 명칭을 붙여 각각 하이엔드, 미드엔드, 로우엔드 제품군을 공략할 계획입니다.

과연 새로운 하이엔드 Bifrost GPU의 성능이 어느 정도 나올지도 궁금하네요.  참고 http://www.anandtech.com/show/10347/arm-cortex-a73-artemis-unveiledhttps://www.arm.com/products/processors/cortex-a/cortex-a73-processor.php http://www.anandtech.com/show/10375/arm-unveils-bifrost-and-mali-g71 시간이 빠듯하더군요

그리고, 27살된 7년차 트레이너 한명과 23세 여자 한명을 같이 가르치고 있어서

더 시간이 안나는듯 합니다 27세 7년차 트레이너는.. 각종 자격증은 많지만.. 자기몸이 그닥 임팩트가 없으니, 자신이 회원을 가르치면서도.."내가 제대로 하고 있는거 맞나.. 내몸도 제대로 만들어본적이 없는데" 라는 생각을 늘

하고 살았다고 합니다그래서 "트레이너는 몸이 명함이고, 몸이 경력이다 몸을 만들어봐라  극한까지 몰아봐라" 라고 조언을 해줬고, 제가 운동하는 시간에 맞춰서소리없이 따라오고 있습니다  기특하더군요 23세 여성은 공무원시험준비를 하면서, 하루 2시간정도 웨이트를 하는 친군데


운동경력이 1년인데... 운동에 대한 열정도 굉장하고, 몸이 좋습니다  마치.. 크로스핏 하는 미국여자들 몸과 비슷하더군요3일전엔가.."공무원시험 포기하고 운동쪽으로 해보고싶다" 라고 저에게 상담을 구하더군요

그런데 운동하는건 자신있는데... 다음은 어떻게 자기꿈을 향해 달려가야할지 모르겠다.

. 라고 말하더군요그래서 "단순히 운동을 좋아만 해서는 안된다.

. 내몸을 자유자재로 바꿀수있어야 한다  그경지에 오르면...이분야는 성공한다" 라고 조언을 해주었습니다그래서, 앞으로 8주간 날따라서 운동하고

8주후에 대답을 해주겠다.

. 라고 했습니다 그리고 저는

앞으로 8주더 열심히 달려 가겠습니다  여러분들 암 브라스터(Arm blaster) 라는 기구를 아십니까?저기위에 아놀드 성님이 메고 있는 노란색 보조기구가 암 브러스트 입니다조금 좋은것도 있고

되게 싼것도 있고

그렇습니다 위의 제품이 제가 실제 쓰고 있는 제품입니다저도 이번에

벌크업하면서 처음 구입해서 사용하고 있는데...."엇 이것봐라!!!" 싶은..기구입니다 바벨컬할때, 그리고 케이블컬할때 사용하는데... 이두에 굉장한 집중이 되더군요

아주아주 느낌이 베리굿 입니다 아래의 그림과 같이

덤벨컬에서도 아주 용이하게 사용이됩니다고립을 시켜주는..그런느낌입니다   그리고, 이두 말고도

삼두 케이블 프레스 다운을할때.. 삼두에 가해지는 느낌은 가히...여러분들께 이제품을 추천하지 않을수가 없을듯 합니다 후후   아놀드성님의 사진을 보면서 저기구를 자주 보긴했지만...대수롭지 않게 넘겼는데

이거 물건인데요? 여러분들께도 추천 드립니다   사실 우리의 일상생활에서 가장 흔하게 접할 수 있는 CPU 이면서 - 이미 100억개 이상의 ARM CPU 가 판매되었다 - 보통 사람들에게는 거의 알려지지 않은 회사가 있으니 바로 지금 부터 소개할 ARM 이다.

   본 포스팅에서는 이전 광고한데로  ARM 과 모바일 시장에 대한 필자의 개인적인 소견과 ARM 과 인텔의 애증의 역사에 대해서 이야기해 볼 생각이다.

   객관적인 사실에 대해서 우선 기술할 것이기는 하지만 다소 주관적인 사견과 개인적인 예측도 같이 들어갈 예정이니 읽으시는 분들은 이점을 좀 감안해 주시기 바라며 꼭 필자의 의견이 옳지 않을 수도 있기 때문에 여기에 쓴 내용들은 그냥 참고만 하시기 바란다.

    1. ARM 이란 ?   사전적인 의미를 찾아보면 ARM 은 Advanced RISC Machine 이란 뜻이다.

 그리고 과거엔 Acorn RISC Machine 이라는 의미였다.

 이 중 RISC (Reduced Instruction Set Computer) 의 약자로 뭐 이 분야에 지식이 많으신 분들은 굳이 필자 같은 아마추어의 설명이 필요 없겠지만 그래도 잘 모르시는 분들을 위해 설명한다면 다음과 같다.

   대개 범용 마이크로프로세서 (이를 테면 CPU) 구성하는 요소는 명령세트, 레지스터, 메모리 공간 등으로 이루어져 있다.

이중 명령세트는 RISC 과 이에 대비되는 CISC (Complex Instruction Set Computer) 로 나눌수가 있다.

   CSIC 는 소프트웨어, 특히 컴파일러 작성을 쉽게 하기 위해 하드웨어가 할 수 있는 일은 모두 하드웨어가 할 수 있도록 만든 컴퓨터다.

이 구조의 명령세트는 고급 언어에 각기 하나의 기계어를 대응 시킴으로 명령어 집합이 커지고 다양한 가변 길이의 명령어를 가지게 된다.

   그러나 CISC 의 단점은 주로 쓰이는 명령어는 소수에 불과한데다 구조가 복잡해지고 커짐에 따라 비용과 전력 소모가 증가한다는 것이다.

따라서 자주 사용하지 않는 명령어는 모두 소프트웨어로 구현하고 자주 쓰이는 명령어만 간략화하는 구조가 등장했으니 바로 RISC 인 것이다.

   현재 시장에서 볼수 있는 대표적인 CISC 프로세서는 바로 x86 이다.

반면 RISC 의 대표는 지금 설명하는 ARM 을 비롯하여 IBM 의 powerpc, MIPS, SPARC, Alpha 등이 있다.

그리고 아마도 ARM 이 이중에서 가장 흔하게 쓰이는 아키텍처일 것이다.

      2. ARM 의 초창기와 아콘 컴퓨터     인텔이나 AMD 가 생기기 전 페어차일드가 존재했듯이 (무슨 이야긴지 궁금하면 이전에 필자가 쓴 펜티엄 및 AMD 에 대한 이야기를 보시라) ARM 역시 갑자기 생겨난 회사는 아니었다.

그들의 기원은 신사들의 나라로는 유명하지만 IT 부분에서는 우리에게 친숙하지 못한 영국의 Acorn Computer 였다.

참고로 1990년 이후 ARM 은 아콘 컴퓨터내 독립된 팀이었고 이후에는 자회사로 독립하기 때문에 사실 ARM 이란 회사의 초기 역사는 아콘 컴퓨터 내에 있을 때 부터 시작했다는 것이 맞을 것이다.

   (여담이지만 필자의 지인 중 한분은 영국의 인터넷 속도가 너무 느리다면서 역시 한국이 IT 강국이라고 긍지를 느끼셨다.

그리나 유선 인터넷 속도는 느릴지 몰라도 영국 ARM 은 IT 강국 한국도 따라오기 힘든 CPU 설계 기술을 지녔다.

)   1978년 설립된 아콘 컴퓨터 (Acorn Computers) 는 1980년대와 1990년대 초반까지 영국의 교육용 컴퓨터 시장을 장악하면서 애플과도 비교되었던 회사였다.

그러나 1980 - 1990 년대는 인텔과 마이크로 소프트 두 쌍두마차가 컴퓨터 시장을 평정해 나가던 시기였고, 세계 각지의 토종 (?) 컴퓨터들은 씨가 마르게 되었다.

   그 시기 아콘 컴퓨터 역시 어려움을 겪을 수 밖에 없었다.

1981년 등장한 IBM PC 는 아콘의 생존을 위협했고 이로 인해 아콘 컴퓨터는 이를 물리칠 새로운 아키텍처를 모색했다.

그들은 작고 강력한 32 비트 RISC 아키텍처가 해결책이 될 수 있다고 생각했다.

따라서 ARM 아키텍처는 태생부터 인텔의 x86 타도를 위해 나왔다고 할 수 있다.

   아콘 컴퓨터는 이전에 8 비트 프로세서인 MOS Technology 6502 를 제작한 경험이 있었다.

아콘의 엔지니어들은 이를 기반으로 1983년부터 독자적인 32 비트 RISC 프로세서 설계에 돌입했다.

그리고 이 CPU 에 이름은 ARM (당시는 Acorn RISC Machine) 이었다.

이 프로세서가 처음 나온 것은 1985년 4월이었는데 당시 BBC Micro의 세컨드 프로세서로 장착된 외에는 거의 사용되지 않았다.

나중에 ARM 1 으로 불린 이 프로세서는 일종의 연습이었던 셈이다.

아무튼 이 프로세서가 ARM v1 이라 불린 첫번째 ARM 아키텍처 프로세서였다.

      (BBC Micro 의 모습 아콘 컴퓨터에서 만든 8비트 컴퓨터이다.

 카셋트 테잎으로 구동하는 고대의 컴퓨터 중 하나라고 한다.

 I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.)     다음해 들어서 아콘의 기술자들은 마침내 최초의 본격적인 ARM CPU 인 ARM 2 를 개발했다.

2 세대 아키텍처인 ARM v2 아키텍처였다.

이 프로세서는 세계에서 제일 작은 32비트 CPU 로 그 트랜지스터 숫자가 3만개에 불과할 정도로 작은 프로세서였다.

인텔 최초의 32비트 x86 프로세서인 80386 이 275000 개의 트랜지스터를 집적한 것과는 상당한 차이가 있었다.

이렇게 작은 CPU 를 만들 수 있는 원동력은 RISC 구조와 캐쉬마저 생략해버린 구조의 단순화에 있었다.

   ARM2 의 성능은 8 Mhz 클럭에서 4 MIPS 정도였다.

 앞으로 MIPS 와 DMIPS 라는 단위를 앞으로 ARM CPU 의 성능을 비교하는 데 사용할 것인데 여기에는 주의할 점이 있다.

MIPS (million instruction per second) 라는 단위는 초당 처리 가능한 명령어의 갯수를 종류에 관계 없이 측정한 것이다.

이 방식의 문제점은 서로 명령어의 종류가 다를 경우 공정한 비교가 어렵다는 것이다.

   예를 들어 1500 m 경주를 하는데 한사람은 자전거를 타고 다른 사람은 달리기를 한다면 공정한 비교가 되겠는가? 같은 이치로 CISC 와 RISC 로 서로 구조가 다른 CPU 에서 MIPS 로 성능 비교를 한다면 공정한 결과가 나오기 힘들다.

같은 작업을 해도 RISC CPU 의 MIPS 가 훨씬 높게 나오기 때문이다.

따라서 MIPS 값 결과는 ARM CPU 간의 상대적 성능 비교시 참고만 해야 할 것이다.

 참고로 MIPS에는 부동 소숫점 연산을 제외한 Dhrystone MIPS 와 이를 포함한 Whetstone MIPS 이 있다.

ARM 에서 공개한 자료를 보면 DMIPS 가 좀더 상대적인 비교에 사용되니 참조하시기 바란다.

   아무튼 1987년 아콘 컴퓨터는 회심의 대작 (?) 인 Acorn Archimedes 컴퓨터를 발표한다.

이는 개인용 홈 PC 시장을 타겟으로 등장했으며 한때나마 영국 토종 컴퓨터의 자존심을 지켰던 컴퓨터였다.

운영 체제는 RISC OS 를 사용했으며 1990년대 중반까지 명맥을 이어갔다.

그러나 1990년 초반 부터 인텔의 x86 프로세서와의 경쟁에서 아콘 컴퓨터는 서서히 몰락하기 시작했다.

   (아콘 컴퓨터의 아르키메데스 시스템의 모습. 모니터는 나중에 바꾼듯 하다.

필자는 한번도 실물은 본적이 없다.

혹시 실물 보신 분 계신지 ?  This image has been (or is hereby) released into the public domain by its author, Philcrbk at the wikipedia project. This applies worldwide )   1990년대는 컴퓨터 시장에도 글로벌 바람이 불어닥치기 시작해서 세상에 모든 개인용 컴퓨터가 미국의 CPU 와 OS 를 사용해야만 하는 시대가 도래했다.

결국 이러한 상황에서 ARM의 처지도 어려워 질 수 밖에 없었다.

결과론적으로 본다면 90년대 중반 이후로 ARM은 인텔에 맞서 영국의 토종 컴퓨터를 지켜낸다는 목적 달성에 실패했다고 할 수 있다.

    그러나 아콘 컴퓨터도 살기 위한 몸부림을 치기 시작했다.

 ARM 은 3세대 아키텍처인 ARM v3 의 CPU 들을 선보였는데 역시 작은 RISC 프로세서 답게 트랜지스터 수가 3만 5천개에 불과할 정도로 적었다.

인텔 CPU들은 세대를 거듭하면서 트랜지스터 숫자가 기하 급수적으로 증가한 반면 ARM은 소신대로 작고, 값싸고 전기 적게 먹는 CPU 를 고집했던 것이다.

문제는 성능도 고만고만 했다는 점이다.

   최초의 ARM v3 칩인 ARM 60 은 3DO 의 Interactive multiplayer 에 사용되었다.

(1993년) 파나소닉에서 만든 이 게임기는 699 달러에 달하는 고가로 인해 결국 시장에서 퇴출당하는 운명에 처하게 된다.

그러나 훗날 ARM 은 닌텐도와의 끈끈한 관계를 바탕으로 콘솔 시장에서 그 때의 수모를 갚게 된다.

  (파나소닉의 3DO    CCL 에 따라 복사 허용 저자 표시   저자   Bidou (take screenshot) ; NaSH (work on image))   다시 ARM 은 절치 부심 노력하에 3세대 아키텍처에 속하는 ARM 7 을 개발했다.

(ARM 은 vX 형식으로 아키텍처 버전을 표시한다.

ARM 7/9/11 등 뒤의 숫자는 패밀리로 예를 들어 ARM 700 모델이면 ARM v3 에 속하는 ARM 7 패밀리 계통 제품이다) ARM 7 패밀리는 1994년 출시된 아콘 컴퓨터의 Risc PC 모델에 탑재되었다.

  (Acorn Risc PC 600 모델이다.

아콘의 Risc PC 시리즈 중 하나인데 PC 라는 명칭에서 IBM 호환 PC 와 경쟁하려는 의도를 짐작할 수 있다.

물론 그 의도는 실패로 끝났다.

아마 DVD 는 나중에 단듯  CCL  에 따라  복사 허용 저자 표시   저자  Christof Efkemann )    당시 ARM 7 패밀리는 대략 0.68 DMIPS/MHz 정도의 퍼포먼스를 보였으며 40 MHz로 작동했기 때문에 대략 27.2 DMIPS 정도되는 성능을 가졌던 셈이다.

비슷한 시기에 등장한 80486 DX4 의 경우 100 MHz 에서 70.7 MIPS 의 성능을 보였는데, 앞서 설명했듯이 MIPS 수치는 참고로만 삼아야 겠지만 CISC 프로세서가 RISC 프로세서보다 MIPS 수치에서 몇배 앞서 간다면 대략 그 성능 차이를 짐작할 수 있을 것이다.

   더구나 당시 컴퓨팅 환경은 점차 멀티미디어 및 게이밍의 중요해졌고, 운영체제도 이전보다 화려한 그래픽 UI 가 도입되면서 ARM 처럼 저성능 RISC PC 의 설자리는 더욱 줄어들 수 밖에 없었다.

따라서 아콘 컴퓨터는 점차 개인용 PC 시장에서 밀려나 셋톱 박스나 지금의 넷탑의 선조라고 해야할 네트워크 컴퓨터등으로 활로를 모색했다.

     3. ARM 의 성장   그러나 이 시기 ARM 에는 중요한 변화가 일어나고 있었다.

그것은 애플 및 DEC 등이 ARM 의 새로운 고객이 되었다는 것이다.

 그리고 ARM 역시 아콘 컴퓨터 내에서 서서히 자회사로 독립하여 ARM Ltd 를 거쳐 ARM Holdings 로 분사해 나스닥과 런던 주식 시장에 상장했다 (1998년)    애플은 1993년 뉴튼 OS 를 사용한 첫번째 PDA 인 메세지 패드 (MassagePad) 시리즈를 공개했다.

이 PDA 는 ARM 610 프로세서를 사용했다.

이는 주목할 만한 변화였다.

ARM 의 RISC 프로세서들은 성능적으로 같은 시기의 인텔 CPU 와 경쟁하기 어려웠다.

그러나 너무나 작고 단순한 CPU 이기 때문에 전력 소모가 매우 적을 뿐 아니라 제조 단가도 아주 낮다는 큰 장점이 있었다.

이는 모바일 기기에 아주 적합한 특징이었다.

   따라서 ARM 이 모바일 기기에 CPU 로 채택된 것은 아주 시의 적절한 선택이었다.

그리고 향후 모바일 시장을 장악할 ARM 의 전설이 여기서 시작되는 것이다.

   (애플 메세지 패드 100 의 모습. 이시기 부터 시작된 애플과 ARM 의 관계는 현재 아이폰과 아이팟으로까지 이어졌다고 하겠다.

   I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide. )    한편 상당한 기술력을 지닌 IT 업체로 파산한 이후 수많은 IT 기업에도 영향을 준 DEC 역시 망하기 전 ARM 과 새로운 프로젝트를 계획했다.

1995년 DEC 는 모바일 기기에 적합한 저전력 성능을 가지고 있지만 성능이 너무 안나오는 ARM 아키텍처를 개량해서 보다 강력한 ARM 아키텍처 CPU 를 만들고자 했다.

타겟은 셋톱박스 시장과 PDA 시장이었다.

   이 계획은 스트롱 암 (StrongARM) 으로 알려져 있는데, DEC 와 ARM 의 엔지니어들은 빠르게 결과물을 내놓았다.

이 스트롱 암 프로세서들은 4세대 ARM 아키텍처 (ARM v4) 에 기반했으며 클럭당 성능을 1.0 DMIPS/MHz 급으로 끌어올린 첫 번째 ARM 아키텍처였다.

   첫 스트롱 암 제품인 SA - 110 은 203 MHz 로 작동했으며 약 200 DMIPS 정도의 성능을 가졌고 애플의 뉴튼 2X00 시리즈 PDA 및 아콘의 Risc PC 등에도 탑재되었다.

후에 233 MHz 모델이 추가되었다.

  (DEC 의 StrongARM SA 110 제품    CCL 에 따라 복사 허용 저자 표시   출처 Source: http://www.cpu-collection.de/?l0=i&i=1347&sd=1 )   사실 StrongARM 제품들은 ARM 의 약점인 성능을 크게 개선한 모델이긴 했다.

비록 당시 펜티엄에 견줄 성능은 아닐지 몰라도 PDA 시장에서는 가능성을 보여준 제품이었다.

참고로 DEC 에서 이 제품이 나왔기 때문에 DEC 의 다른 고성능 RISC 프로세서인 알파 칩과 혼동되어 ARM이 알파 칩 아키텍처로 알려지기도 했는데 이는 잘못된 것이다.

   아무튼 StrongArm 의 문제는 바로 DEC 가 ARM 의 모기업 아콘 컴퓨터 처럼 망해가던 회사라는 점이다.

결국 DEC 는 여러개로 조각나서 팔려나가게 되는데 그 중 스트롱 암 부분은 공교롭게도 인텔에 매각된다.

(1997년) 이미 x86 시장의 절대 강자로 군림하던 인텔이 뭐가 아쉬워서 인텔 CPU 에 밀려 망해가던 아콘 컴퓨터의 ARM 아키텍처를 구입했는지는 나중에 설명하겠다.

   그러나 4세대 ARM 아키텍처 (ARM v4) 의 가장 큰 성공은 스트롱 암이 아니라 ARM7TDMI 일 것이다.

이 계열의 ARM 프로세서들의 성공을 통해 ARM 은 시장에서 안착할 수 있었다.

ARM7TDMI 는 게임보이 어드벤스드, 닌텐도 DS, 아이팟, 그리고 노키아의 휴대폰은 물론 온갖 모바일 기기에 채택되면서 모바일 시장에서 ARM 의 입지를 굳힌 명작이었다.

(참고로 성능은 70 MHz 에서 63 DMIPS 였다)   ARM7TDMI 는 당시에 수억개가 팔려나갔으며 지금도 일부 생산되는 CPU 이다.

그러나 ARM 은 이 CPU 를 판매하면서 인텔과는 다른 판매 방식을 개척했다.

그것은 규모가 작은 설계 팀인 ARM 이 직접 개발에서 생산, 마켓팅까지 담당하는 것이 아니라 ARM 은 설계만 하고 다른 반도체 제조사에 라이센스를 주어 필요한 만큼 ARM 아키텍처의 CPU 를 생산하게 한 것이다.

ARM CPU 는 크기가 워낙 작아 생산 단가가 매우 저렴했으며 ARM 자체에서 라이센스 비용을 매우 저렴하게 책정한 덕분에 곧 여러 회사에서 널리 쓰이는 CPU 가 되었다.

   이후 등장한 4세대 ARM 아키텍처 CPU 는 ARM9TDMI 였다.

이중 ARM920T 은 16KB/16KB 의 캐쉬를 갖추었으며 닌텐도 DS/DSi, 노키아, 모토로라, HTC, 소니 에릭슨, LG (쿠키폰), 삼성 등 온갖 회사에 라이센스되어 생산되었고, 심지어 국산 휴대용 게임기 GP2X Wiz 등 각종 모바일 기기에 사용되었다.

참고로 180 MHz 로 작동하는 ARM920T 는 약 200 DMIPS 의 퍼포먼스를 보였다고 한다.

   본래 ARM 아키텍처는 아콘의 RISC OS 를 운영체제로 삼았지만 ARM 자체가 확산되면서 다양한 Linux 계통 운영체제 - Fedora, Ubuntu, Chrome OS, Android 등 - 은 물론 BSD 계통이나 open solaris 계통 운영 체제들도 ARM 에서 구동가능하게 되었다.

   다만 ARM 자체는 x86 와는 태생부터 다른 RISC 프로세서 였기 때문에 x86용으로 개발된 윈도우 계통의 운영체제는 구동할 수 없었다.

그러나 모바일 기기부터 임베디드 시장에 이르기 까지 워낙 광범위한 분야로 마른 장작에 불을 붙이듯 퍼져나갔기 때문에 결국 마이크로 소프트 마저 ARM 에서 구동이 가능한 윈도우 CE 와 윈도우 모바일을 출시했던 것이다.

    1998년 ARM 은 명칭을 Advanced RISC Machines 로 변경하고 나스닥과 런던 주식 시장에 상장 했다.

이후 ARM 은 파산해가던 아콘 컴퓨터로 부터 떨어져 나오게 된다.

ARM 의 모기업 아콘 컴퓨터가 완전히 파산한 건 2000년 이었다.

이후 2006에 아콘 컴퓨터의 상호를 별개의 회사가 구매해서 컴퓨터를 판매하긴 했지만 이들이 생산한 건 그냥 인텔 CPU 와 윈도우 운영체제를 쓴 평범한 컴퓨터들이었다.

   아무튼 영국의 애플이라 불리던 아콘 컴퓨터는 파산했다.

그러나 호랑이가 죽어서 가죽을 남기듯 아콘은 죽어서 ARM 이라는 유산을 남겼다.

그리고 결국 오늘날 ARM 은 아콘 컴퓨터가 살아 있을 당시 못했던 과업에 도전하고 있는데 그것은 CPU 시장에서 인텔에 아성에 도전하는 것이었다.

   음 그런데 ARM v5,6,7 에 대한 이야기나 인텔의 Xscale 및 아이폰 CPU VS 옴니아 CPU (둘다 ARM 계통이다.

) 의 비교등에 대한 이야기는 글이 길어졌으니 다음에 써야 겠다.

 그리고 아마 다음에는 부모 (아콘) 을 죽인 원수 (인텔) 에 복수 (?)를 하는 ARM 의 이야기도 같이 써보겠다.

       (일러두기 : 최근 저작권 문제와 관련하여 새롭게 포스트에 표시를 하려 합니다.

이 포스트의 사진과 이미지들 중public domain 의 표시가 있는 것은 자유롭게 사용이 가능하도록 공개된 것이나 발표된 지 오래되어 저작권이 소멸된 것 들입니다.

이를 복사해서 사용하는 것은 저작권법에 위반되지 않습니다.

단 원자작자 표시가 있고, 이를 표시할 의무를 지정할 경우 이에 따라야 합니다.

  GNU/CCL 에 의하여 복사가 허용된 이미지를 가져온 것들도 따로 표시했습니다.

복사 및 재배포가 자유로운 이미지들이므로 역시 복사해서 사용해도 문제되지 않습니다.

)             2013년 7월 9일 경기에서 그는 92

96마일이 나오는 패스트볼을 던졌고, 패스트볼 만큼이나 좋은 구위를 보여준 너클 커브하나를 던졌다.

그가 던지는 것을 보기 위해 스카우트들은 모여들었고, 그날 한경기를 통해서 라일리 파인트는 앤서니 몰리나 보다 더 각광받는 투수로 떠오르게 되었다.

파인트는 캔자스 시티의 외곽지역에 거주하기 때문에 조지아 주에서 열리는 Perfect Game에 참여할 수가 없었고, 그로 인해 그는 지난 2년간 비교적 잘 알려지지 않은 선수였다.

캔자스시티에서 야구는 계절 스포츠였기 때문에 그는 겨울이 되면 야구가 아닌 농구를 하며 시간을 보냈다.

6피트 4인치, 190 파운드의 체중을 보유하고 있는 파인트는 지금 보다 최소 30파운드 정도는 체중을 더 늘려도 되는 조건을 갖추고 있다.

"아버지가 항상 강조하신 것이 겨울에는 야구공을 잡지 말라는 것이었어요. 캘리포니아에서 야구를 하는 선수들은 겨울에도 공을 던지고 있다는 사실을 알고 있었지만 아버지는 좀 더 멀리 바라보고자 하는 시각을 가지고 있었습니다" -라일리 파인트-그의 아버지 닐 파인트는 아이오와 주립 대학에서 공을 던졌다.

그는 아들이 고등학교 1학년이 되던 당시 몸무게가 줄지않고 6인치의 신장이 더 커진것을 발견했고, 그 때 부터 아들을 체계적으로 관리하기로 결심했다.

그는 항상 아들에게 선수 랭킹에 대해서는 신경을 쓰지 말것을 당부했고, 고등학교 3학년이 되기전까지는 그 어떤 행사에도 참여할 필요가 없다고 말해주었다.

그가 최근까지 잘 알려지지 않은 이유도 바로 이 때문이다.

"아들을 너무 조심해서 다루고 있진 않은가 하는 우려도 들지만, 무리 시켜서 부상을 입히는 것 보다 다소 과하지만 철저하게 관리해 주는 것이 훨씬 나은 결정이라고 판단했죠" -닐 파인트-이제 그의 부모는 파인트에 대해서 크게 걱정하지 않는다.

그의 학교 성적 평점은 꾸준히 3.5를 유지해 왔고, 그가 마시는 가장 위험한 음료수는 바로 콜라이다.

"아직도 될 수 있으면 탄산 음료는 마시지 않으려고 합니다" -라일리 파인트-그는 게임은 절대 하지 않으며, 역사와 관련된 다큐멘터리를 보는 것을 즐긴다.

"과거에 대해서 배우는 것이 좋아요. 제가 가장 좋아하는 두 가지 주제는 베트남 전쟁과 세계 2차대전이죠. 그것에 대해서 듣는 것 만으로도 흥미롭죠. 한번은 베트남에 대한 8시간 분량의 다큐멘터리를 앉은 자리에서 다 보기도 했어요" -라일리 파인트-이제 2016년 드래프트가 점점 다가오면서 파인트가 과연 어느정도의 순번에 지명될지에 대한 관심도 커지고 있다.

파인트의 친구들은 그에게 백만장자가 되면 어떤 느낌일 것 같냐는 질문을 하곤 한다.

"그런 말을 할 때 마다 대화를 주제를 바꾸거나, 그 자리를 뜨곤 합니다.

그런것에 대해서 말하는 것 자체가 아주 어색하거든요" -라일리 파인트- 2013년 7월 9일 경기에서 그는 92

96마일이 나오는 패스트볼을 던졌고, 패스트볼 만큼이나 좋은 구위를 보여준 너클 커브하나를 던졌다.

그가 던지는 것을 보기 위해 스카우트들은 모여들었고, 그날 한경기를 통해서 라일리 파인트는 앤서니 몰리나 보다 더 각광받는 투수로 떠오르게 되었다.

파인트는 캔자스 시티의 외곽지역에 거주하기 때문에 조지아 주에서 열리는 Perfect Game에 참여할 수가 없었고, 그로 인해 그는 지난 2년간 비교적 잘 알려지지 않은 선수였다.

캔자스시티에서 야구는 계절 스포츠였기 때문에 그는 겨울이 되면 야구가 아닌 농구를 하며 시간을 보냈다.

6피트 4인치, 190 파운드의 체중을 보유하고 있는 파인트는 지금 보다 최소 30파운드 정도는 체중을 더 늘려도 되는 조건을 갖추고 있다.

"아버지가 항상 강조하신 것이 겨울에는 야구공을 잡지 말라는 것이었어요. 캘리포니아에서 야구를 하는 선수들은 겨울에도 공을 던지고 있다는 사실을 알고 있었지만 아버지는 좀 더 멀리 바라보고자 하는 시각을 가지고 있었습니다" -라일리 파인트-그의 아버지 닐 파인트는 아이오와 주립 대학에서 공을 던졌다.

그는 아들이 고등학교 1학년이 되던 당시 몸무게가 줄지않고 6인치의 신장이 더 커진것을 발견했고, 그 때 부터 아들을 체계적으로 관리하기로 결심했다.

그는 항상 아들에게 선수 랭킹에 대해서는 신경을 쓰지 말것을 당부했고, 고등학교 3학년이 되기전까지는 그 어떤 행사에도 참여할 필요가 없다고 말해주었다.

그가 최근까지 잘 알려지지 않은 이유도 바로 이 때문이다.

"아들을 너무 조심해서 다루고 있진 않은가 하는 우려도 들지만, 무리 시켜서 부상을 입히는 것 보다 다소 과하지만 철저하게 관리해 주는 것이 훨씬 나은 결정이라고 판단했죠" -닐 파인트-이제 그의 부모는 파인트에 대해서 크게 걱정하지 않는다.

그의 학교 성적 평점은 꾸준히 3.5를 유지해 왔고, 그가 마시는 가장 위험한 음료수는 바로 콜라이다.

"아직도 될 수 있으면 탄산 음료는 마시지 않으려고 합니다" -라일리 파인트-그는 게임은 절대 하지 않으며, 역사와 관련된 다큐멘터리를 보는 것을 즐긴다.

"과거에 대해서 배우는 것이 좋아요. 제가 가장 좋아하는 두 가지 주제는 베트남 전쟁과 세계 2차대전이죠. 그것에 대해서 듣는 것 만으로도 흥미롭죠. 한번은 베트남에 대한 8시간 분량의 다큐멘터리를 앉은 자리에서 다 보기도 했어요" -라일리 파인트-이제 2016년 드래프트가 점점 다가오면서 파인트가 과연 어느정도의 순번에 지명될지에 대한 관심도 커지고 있다.

파인트의 친구들은 그에게 백만장자가 되면 어떤 느낌일 것 같냐는 질문을 하곤 한다.

"그런 말을 할 때 마다 대화를 주제를 바꾸거나, 그 자리를 뜨곤 합니다.

그런것에 대해서 말하는 것 자체가 아주 어색하거든요" -라일리 파인트-나는 양산을 가능하도록 하는 실제 산업에서 활약할 수 있는 개발자가 되고싶다.

[arm] 란 무엇인가?


하지만, 양산을(수익을) 목적으로 하려면, AVR이나 ARM같은 마이크로 컨트롤러를 사용해야한다.

그 중 산업(ex.냉장고, 세탁기,TV 등등)에서 대표적을 사용되는 것이 ARM Cortex-M3 이기에,이것을 공부하고자 한다.

그래서, 수많은 인터넷 설명이나 책 등을 접했는데, 너무나 많은 전문용어들로 이해가 잘 안갔다.

그래서, 내가 나중에도 볼 수 있기 위해 +나 같이 비전문적인 사람에게 (ㅠㅠ) ARM Cortex-M3를 쉽게 쉽게 접근할 수 있도록 도움을 주고자,내가 이해한 방식으로, 최대한 쉽게쉽게 설명된 "공부 일지"를 작성하기로 했다.

  사실 우리의 일상생활에서 가장 흔하게 접할 수 있는 CPU 이면서 - 이미 100억개 이상의 ARM CPU 가 판매되었다 - 보통 사람들에게는 거의 알려지지 않은 회사가 있으니 바로 지금 부터 소개할 ARM 이다.

   본 포스팅에서는 이전 광고한데로  ARM 과 모바일 시장에 대한 필자의 개인적인 소견과 ARM 과 인텔의 애증의 역사에 대해서 이야기해 볼 생각이다.

   객관적인 사실에 대해서 우선 기술할 것이기는 하지만 다소 주관적인 사견과 개인적인 예측도 같이 들어갈 예정이니 읽으시는 분들은 이점을 좀 감안해 주시기 바라며 꼭 필자의 의견이 옳지 않을 수도 있기 때문에 여기에 쓴 내용들은 그냥 참고만 하시기 바란다.

    1. ARM 이란 ?   사전적인 의미를 찾아보면 ARM 은 Advanced RISC Machine 이란 뜻이다.

 그리고 과거엔 Acorn RISC Machine 이라는 의미였다.

 이 중 RISC (Reduced Instruction Set Computer) 의 약자로 뭐 이 분야에 지식이 많으신 분들은 굳이 필자 같은 아마추어의 설명이 필요 없겠지만 그래도 잘 모르시는 분들을 위해 설명한다면 다음과 같다.

   대개 범용 마이크로프로세서 (이를 테면 CPU) 구성하는 요소는 명령세트, 레지스터, 메모리 공간 등으로 이루어져 있다.

이중 명령세트는 RISC 과 이에 대비되는 CISC (Complex Instruction Set Computer) 로 나눌수가 있다.

   CSIC 는 소프트웨어, 특히 컴파일러 작성을 쉽게 하기 위해 하드웨어가 할 수 있는 일은 모두 하드웨어가 할 수 있도록 만든 컴퓨터다.

이 구조의 명령세트는 고급 언어에 각기 하나의 기계어를 대응 시킴으로 명령어 집합이 커지고 다양한 가변 길이의 명령어를 가지게 된다.

   그러나 CISC 의 단점은 주로 쓰이는 명령어는 소수에 불과한데다 구조가 복잡해지고 커짐에 따라 비용과 전력 소모가 증가한다는 것이다.

따라서 자주 사용하지 않는 명령어는 모두 소프트웨어로 구현하고 자주 쓰이는 명령어만 간략화하는 구조가 등장했으니 바로 RISC 인 것이다.

   현재 시장에서 볼수 있는 대표적인 CISC 프로세서는 바로 x86 이다.

반면 RISC 의 대표는 지금 설명하는 ARM 을 비롯하여 IBM 의 powerpc, MIPS, SPARC, Alpha 등이 있다.

그리고 아마도 ARM 이 이중에서 가장 흔하게 쓰이는 아키텍처일 것이다.

      2. ARM 의 초창기와 아콘 컴퓨터     인텔이나 AMD 가 생기기 전 페어차일드가 존재했듯이 (무슨 이야긴지 궁금하면 이전에 필자가 쓴 펜티엄 및 AMD 에 대한 이야기를 보시라) ARM 역시 갑자기 생겨난 회사는 아니었다.

그들의 기원은 신사들의 나라로는 유명하지만 IT 부분에서는 우리에게 친숙하지 못한 영국의 Acorn Computer 였다.

참고로 1990년 이후 ARM 은 아콘 컴퓨터내 독립된 팀이었고 이후에는 자회사로 독립하기 때문에 사실 ARM 이란 회사의 초기 역사는 아콘 컴퓨터 내에 있을 때 부터 시작했다는 것이 맞을 것이다.

   (여담이지만 필자의 지인 중 한분은 영국의 인터넷 속도가 너무 느리다면서 역시 한국이 IT 강국이라고 긍지를 느끼셨다.

그리나 유선 인터넷 속도는 느릴지 몰라도 영국 ARM 은 IT 강국 한국도 따라오기 힘든 CPU 설계 기술을 지녔다.

)   1978년 설립된 아콘 컴퓨터 (Acorn Computers) 는 1980년대와 1990년대 초반까지 영국의 교육용 컴퓨터 시장을 장악하면서 애플과도 비교되었던 회사였다.

그러나 1980 - 1990 년대는 인텔과 마이크로 소프트 두 쌍두마차가 컴퓨터 시장을 평정해 나가던 시기였고, 세계 각지의 토종 (?) 컴퓨터들은 씨가 마르게 되었다.

   그 시기 아콘 컴퓨터 역시 어려움을 겪을 수 밖에 없었다.

1981년 등장한 IBM PC 는 아콘의 생존을 위협했고 이로 인해 아콘 컴퓨터는 이를 물리칠 새로운 아키텍처를 모색했다.

그들은 작고 강력한 32 비트 RISC 아키텍처가 해결책이 될 수 있다고 생각했다.

따라서 ARM 아키텍처는 태생부터 인텔의 x86 타도를 위해 나왔다고 할 수 있다.

   아콘 컴퓨터는 이전에 8 비트 프로세서인 MOS Technology 6502 를 제작한 경험이 있었다.

아콘의 엔지니어들은 이를 기반으로 1983년부터 독자적인 32 비트 RISC 프로세서 설계에 돌입했다.

그리고 이 CPU 에 이름은 ARM (당시는 Acorn RISC Machine) 이었다.

이 프로세서가 처음 나온 것은 1985년 4월이었는데 당시 BBC Micro의 세컨드 프로세서로 장착된 외에는 거의 사용되지 않았다.

나중에 ARM 1 으로 불린 이 프로세서는 일종의 연습이었던 셈이다.

아무튼 이 프로세서가 ARM v1 이라 불린 첫번째 ARM 아키텍처 프로세서였다.

      (BBC Micro 의 모습 아콘 컴퓨터에서 만든 8비트 컴퓨터이다.

 카셋트 테잎으로 구동하는 고대의 컴퓨터 중 하나라고 한다.

 I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.)     다음해 들어서 아콘의 기술자들은 마침내 최초의 본격적인 ARM CPU 인 ARM 2 를 개발했다.

2 세대 아키텍처인 ARM v2 아키텍처였다.

이 프로세서는 세계에서 제일 작은 32비트 CPU 로 그 트랜지스터 숫자가 3만개에 불과할 정도로 작은 프로세서였다.

인텔 최초의 32비트 x86 프로세서인 80386 이 275000 개의 트랜지스터를 집적한 것과는 상당한 차이가 있었다.

이렇게 작은 CPU 를 만들 수 있는 원동력은 RISC 구조와 캐쉬마저 생략해버린 구조의 단순화에 있었다.

   ARM2 의 성능은 8 Mhz 클럭에서 4 MIPS 정도였다.

 앞으로 MIPS 와 DMIPS 라는 단위를 앞으로 ARM CPU 의 성능을 비교하는 데 사용할 것인데 여기에는 주의할 점이 있다.

MIPS (million instruction per second) 라는 단위는 초당 처리 가능한 명령어의 갯수를 종류에 관계 없이 측정한 것이다.

이 방식의 문제점은 서로 명령어의 종류가 다를 경우 공정한 비교가 어렵다는 것이다.

   예를 들어 1500 m 경주를 하는데 한사람은 자전거를 타고 다른 사람은 달리기를 한다면 공정한 비교가 되겠는가? 같은 이치로 CISC 와 RISC 로 서로 구조가 다른 CPU 에서 MIPS 로 성능 비교를 한다면 공정한 결과가 나오기 힘들다.

같은 작업을 해도 RISC CPU 의 MIPS 가 훨씬 높게 나오기 때문이다.

따라서 MIPS 값 결과는 ARM CPU 간의 상대적 성능 비교시 참고만 해야 할 것이다.

 참고로 MIPS에는 부동 소숫점 연산을 제외한 Dhrystone MIPS 와 이를 포함한 Whetstone MIPS 이 있다.

ARM 에서 공개한 자료를 보면 DMIPS 가 좀더 상대적인 비교에 사용되니 참조하시기 바란다.

   아무튼 1987년 아콘 컴퓨터는 회심의 대작 (?) 인 Acorn Archimedes 컴퓨터를 발표한다.

이는 개인용 홈 PC 시장을 타겟으로 등장했으며 한때나마 영국 토종 컴퓨터의 자존심을 지켰던 컴퓨터였다.

운영 체제는 RISC OS 를 사용했으며 1990년대 중반까지 명맥을 이어갔다.

그러나 1990년 초반 부터 인텔의 x86 프로세서와의 경쟁에서 아콘 컴퓨터는 서서히 몰락하기 시작했다.

   (아콘 컴퓨터의 아르키메데스 시스템의 모습. 모니터는 나중에 바꾼듯 하다.

필자는 한번도 실물은 본적이 없다.

혹시 실물 보신 분 계신지 ?  This image has been (or is hereby) released into the public domain by its author, Philcrbk at the wikipedia project. This applies worldwide )   1990년대는 컴퓨터 시장에도 글로벌 바람이 불어닥치기 시작해서 세상에 모든 개인용 컴퓨터가 미국의 CPU 와 OS 를 사용해야만 하는 시대가 도래했다.

결국 이러한 상황에서 ARM의 처지도 어려워 질 수 밖에 없었다.

결과론적으로 본다면 90년대 중반 이후로 ARM은 인텔에 맞서 영국의 토종 컴퓨터를 지켜낸다는 목적 달성에 실패했다고 할 수 있다.

    그러나 아콘 컴퓨터도 살기 위한 몸부림을 치기 시작했다.

 ARM 은 3세대 아키텍처인 ARM v3 의 CPU 들을 선보였는데 역시 작은 RISC 프로세서 답게 트랜지스터 수가 3만 5천개에 불과할 정도로 적었다.

인텔 CPU들은 세대를 거듭하면서 트랜지스터 숫자가 기하 급수적으로 증가한 반면 ARM은 소신대로 작고, 값싸고 전기 적게 먹는 CPU 를 고집했던 것이다.

문제는 성능도 고만고만 했다는 점이다.

   최초의 ARM v3 칩인 ARM 60 은 3DO 의 Interactive multiplayer 에 사용되었다.

(1993년) 파나소닉에서 만든 이 게임기는 699 달러에 달하는 고가로 인해 결국 시장에서 퇴출당하는 운명에 처하게 된다.

그러나 훗날 ARM 은 닌텐도와의 끈끈한 관계를 바탕으로 콘솔 시장에서 그 때의 수모를 갚게 된다.

  (파나소닉의 3DO    CCL 에 따라 복사 허용 저자 표시   저자   Bidou (take screenshot) ; NaSH (work on image))   다시 ARM 은 절치 부심 노력하에 3세대 아키텍처에 속하는 ARM 7 을 개발했다.

(ARM 은 vX 형식으로 아키텍처 버전을 표시한다.

ARM 7/9/11 등 뒤의 숫자는 패밀리로 예를 들어 ARM 700 모델이면 ARM v3 에 속하는 ARM 7 패밀리 계통 제품이다) ARM 7 패밀리는 1994년 출시된 아콘 컴퓨터의 Risc PC 모델에 탑재되었다.

  (Acorn Risc PC 600 모델이다.

아콘의 Risc PC 시리즈 중 하나인데 PC 라는 명칭에서 IBM 호환 PC 와 경쟁하려는 의도를 짐작할 수 있다.

물론 그 의도는 실패로 끝났다.

아마 DVD 는 나중에 단듯  CCL  에 따라  복사 허용 저자 표시   저자  Christof Efkemann )    당시 ARM 7 패밀리는 대략 0.68 DMIPS/MHz 정도의 퍼포먼스를 보였으며 40 MHz로 작동했기 때문에 대략 27.2 DMIPS 정도되는 성능을 가졌던 셈이다.

비슷한 시기에 등장한 80486 DX4 의 경우 100 MHz 에서 70.7 MIPS 의 성능을 보였는데, 앞서 설명했듯이 MIPS 수치는 참고로만 삼아야 겠지만 CISC 프로세서가 RISC 프로세서보다 MIPS 수치에서 몇배 앞서 간다면 대략 그 성능 차이를 짐작할 수 있을 것이다.

   더구나 당시 컴퓨팅 환경은 점차 멀티미디어 및 게이밍의 중요해졌고, 운영체제도 이전보다 화려한 그래픽 UI 가 도입되면서 ARM 처럼 저성능 RISC PC 의 설자리는 더욱 줄어들 수 밖에 없었다.

따라서 아콘 컴퓨터는 점차 개인용 PC 시장에서 밀려나 셋톱 박스나 지금의 넷탑의 선조라고 해야할 네트워크 컴퓨터등으로 활로를 모색했다.

     3. ARM 의 성장   그러나 이 시기 ARM 에는 중요한 변화가 일어나고 있었다.

그것은 애플 및 DEC 등이 ARM 의 새로운 고객이 되었다는 것이다.

 그리고 ARM 역시 아콘 컴퓨터 내에서 서서히 자회사로 독립하여 ARM Ltd 를 거쳐 ARM Holdings 로 분사해 나스닥과 런던 주식 시장에 상장했다 (1998년)    애플은 1993년 뉴튼 OS 를 사용한 첫번째 PDA 인 메세지 패드 (MassagePad) 시리즈를 공개했다.

이 PDA 는 ARM 610 프로세서를 사용했다.

이는 주목할 만한 변화였다.

ARM 의 RISC 프로세서들은 성능적으로 같은 시기의 인텔 CPU 와 경쟁하기 어려웠다.

그러나 너무나 작고 단순한 CPU 이기 때문에 전력 소모가 매우 적을 뿐 아니라 제조 단가도 아주 낮다는 큰 장점이 있었다.

이는 모바일 기기에 아주 적합한 특징이었다.

   따라서 ARM 이 모바일 기기에 CPU 로 채택된 것은 아주 시의 적절한 선택이었다.

그리고 향후 모바일 시장을 장악할 ARM 의 전설이 여기서 시작되는 것이다.

   (애플 메세지 패드 100 의 모습. 이시기 부터 시작된 애플과 ARM 의 관계는 현재 아이폰과 아이팟으로까지 이어졌다고 하겠다.

   I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide. )    한편 상당한 기술력을 지닌 IT 업체로 파산한 이후 수많은 IT 기업에도 영향을 준 DEC 역시 망하기 전 ARM 과 새로운 프로젝트를 계획했다.

1995년 DEC 는 모바일 기기에 적합한 저전력 성능을 가지고 있지만 성능이 너무 안나오는 ARM 아키텍처를 개량해서 보다 강력한 ARM 아키텍처 CPU 를 만들고자 했다.

타겟은 셋톱박스 시장과 PDA 시장이었다.

   이 계획은 스트롱 암 (StrongARM) 으로 알려져 있는데, DEC 와 ARM 의 엔지니어들은 빠르게 결과물을 내놓았다.

이 스트롱 암 프로세서들은 4세대 ARM 아키텍처 (ARM v4) 에 기반했으며 클럭당 성능을 1.0 DMIPS/MHz 급으로 끌어올린 첫 번째 ARM 아키텍처였다.

   첫 스트롱 암 제품인 SA - 110 은 203 MHz 로 작동했으며 약 200 DMIPS 정도의 성능을 가졌고 애플의 뉴튼 2X00 시리즈 PDA 및 아콘의 Risc PC 등에도 탑재되었다.

후에 233 MHz 모델이 추가되었다.

  (DEC 의 StrongARM SA 110 제품    CCL 에 따라 복사 허용 저자 표시   출처 Source: http://www.cpu-collection.de/?l0=i&i=1347&sd=1 )   사실 StrongARM 제품들은 ARM 의 약점인 성능을 크게 개선한 모델이긴 했다.

비록 당시 펜티엄에 견줄 성능은 아닐지 몰라도 PDA 시장에서는 가능성을 보여준 제품이었다.

참고로 DEC 에서 이 제품이 나왔기 때문에 DEC 의 다른 고성능 RISC 프로세서인 알파 칩과 혼동되어 ARM이 알파 칩 아키텍처로 알려지기도 했는데 이는 잘못된 것이다.

   아무튼 StrongArm 의 문제는 바로 DEC 가 ARM 의 모기업 아콘 컴퓨터 처럼 망해가던 회사라는 점이다.

결국 DEC 는 여러개로 조각나서 팔려나가게 되는데 그 중 스트롱 암 부분은 공교롭게도 인텔에 매각된다.

(1997년) 이미 x86 시장의 절대 강자로 군림하던 인텔이 뭐가 아쉬워서 인텔 CPU 에 밀려 망해가던 아콘 컴퓨터의 ARM 아키텍처를 구입했는지는 나중에 설명하겠다.

   그러나 4세대 ARM 아키텍처 (ARM v4) 의 가장 큰 성공은 스트롱 암이 아니라 ARM7TDMI 일 것이다.

이 계열의 ARM 프로세서들의 성공을 통해 ARM 은 시장에서 안착할 수 있었다.

ARM7TDMI 는 게임보이 어드벤스드, 닌텐도 DS, 아이팟, 그리고 노키아의 휴대폰은 물론 온갖 모바일 기기에 채택되면서 모바일 시장에서 ARM 의 입지를 굳힌 명작이었다.

(참고로 성능은 70 MHz 에서 63 DMIPS 였다)   ARM7TDMI 는 당시에 수억개가 팔려나갔으며 지금도 일부 생산되는 CPU 이다.

그러나 ARM 은 이 CPU 를 판매하면서 인텔과는 다른 판매 방식을 개척했다.

[arm] 진실 또는 거짓..

그것은 규모가 작은 설계 팀인 ARM 이 직접 개발에서 생산, 마켓팅까지 담당하는 것이 아니라 ARM 은 설계만 하고 다른 반도체 제조사에 라이센스를 주어 필요한 만큼 ARM 아키텍처의 CPU 를 생산하게 한 것이다.

ARM CPU 는 크기가 워낙 작아 생산 단가가 매우 저렴했으며 ARM 자체에서 라이센스 비용을 매우 저렴하게 책정한 덕분에 곧 여러 회사에서 널리 쓰이는 CPU 가 되었다.

   이후 등장한 4세대 ARM 아키텍처 CPU 는 ARM9TDMI 였다.

이중 ARM920T 은 16KB/16KB 의 캐쉬를 갖추었으며 닌텐도 DS/DSi, 노키아, 모토로라, HTC, 소니 에릭슨, LG (쿠키폰), 삼성 등 온갖 회사에 라이센스되어 생산되었고, 심지어 국산 휴대용 게임기 GP2X Wiz 등 각종 모바일 기기에 사용되었다.

참고로 180 MHz 로 작동하는 ARM920T 는 약 200 DMIPS 의 퍼포먼스를 보였다고 한다.

   본래 ARM 아키텍처는 아콘의 RISC OS 를 운영체제로 삼았지만 ARM 자체가 확산되면서 다양한 Linux 계통 운영체제 - Fedora, Ubuntu, Chrome OS, Android 등 - 은 물론 BSD 계통이나 open solaris 계통 운영 체제들도 ARM 에서 구동가능하게 되었다.

   다만 ARM 자체는 x86 와는 태생부터 다른 RISC 프로세서 였기 때문에 x86용으로 개발된 윈도우 계통의 운영체제는 구동할 수 없었다.

그러나 모바일 기기부터 임베디드 시장에 이르기 까지 워낙 광범위한 분야로 마른 장작에 불을 붙이듯 퍼져나갔기 때문에 결국 마이크로 소프트 마저 ARM 에서 구동이 가능한 윈도우 CE 와 윈도우 모바일을 출시했던 것이다.

    1998년 ARM 은 명칭을 Advanced RISC Machines 로 변경하고 나스닥과 런던 주식 시장에 상장 했다.

이후 ARM 은 파산해가던 아콘 컴퓨터로 부터 떨어져 나오게 된다.

ARM 의 모기업 아콘 컴퓨터가 완전히 파산한 건 2000년 이었다.

이후 2006에 아콘 컴퓨터의 상호를 별개의 회사가 구매해서 컴퓨터를 판매하긴 했지만 이들이 생산한 건 그냥 인텔 CPU 와 윈도우 운영체제를 쓴 평범한 컴퓨터들이었다.

   아무튼 영국의 애플이라 불리던 아콘 컴퓨터는 파산했다.

그러나 호랑이가 죽어서 가죽을 남기듯 아콘은 죽어서 ARM 이라는 유산을 남겼다.

그리고 결국 오늘날 ARM 은 아콘 컴퓨터가 살아 있을 당시 못했던 과업에 도전하고 있는데 그것은 CPU 시장에서 인텔에 아성에 도전하는 것이었다.

   음 그런데 ARM v5,6,7 에 대한 이야기나 인텔의 Xscale 및 아이폰 CPU VS 옴니아 CPU (둘다 ARM 계통이다.

) 의 비교등에 대한 이야기는 글이 길어졌으니 다음에 써야 겠다.

 그리고 아마 다음에는 부모 (아콘) 을 죽인 원수 (인텔) 에 복수 (?)를 하는 ARM 의 이야기도 같이 써보겠다.

       (일러두기 : 최근 저작권 문제와 관련하여 새롭게 포스트에 표시를 하려 합니다.

이 포스트의 사진과 이미지들 중public domain 의 표시가 있는 것은 자유롭게 사용이 가능하도록 공개된 것이나 발표된 지 오래되어 저작권이 소멸된 것 들입니다.

이를 복사해서 사용하는 것은 저작권법에 위반되지 않습니다.

단 원자작자 표시가 있고, 이를 표시할 의무를 지정할 경우 이에 따라야 합니다.

  GNU/CCL 에 의하여 복사가 허용된 이미지를 가져온 것들도 따로 표시했습니다.

복사 및 재배포가 자유로운 이미지들이므로 역시 복사해서 사용해도 문제되지 않습니다.

)            com/gkf9876/220711275466[ARM Cortex(????)] ???? ?? ?? ???http://blog.naver.com/gkf9876/220711136607[ARM Cortex(????)] &#53552...blog.naver.com이제 남아있는 두개 함수를 분석해봅시다.

void TP_DrawPoint(uint16_t Xpos, uint16_t Ypos)FunctionalState getDisplayPoint(Coordinate * displayPtr, Coordinate * screenPtr, Matrix * matrixPtr)??void TP_DrawPoint(uint16_t Xpos, uint16_t Ypos) 의 정의를 보면void TP_DrawPoint(uint16_t Xpos, uint16_t Ypos){LCD_SetPoint(Xpos, Ypos, Blue); /* Center point */LCD_SetPoint(Xpos + 1, Ypos, Blue);LCD_SetPoint(Xpos, Ypos + 1, Blue);LCD_SetPoint(Xpos + 1, Ypos + 1, Blue);}이렇게 되어 있어, 좀 굵은 점을 그리는 함수입니다.

그다음 FunctionalState getDisplayPoint(Coordinate * displayPtr, Coordinate * screenPtr, Matrix * matrixPtr)의 정의를 보면?FunctionalState getDisplayPoint(Coordinate * displayPtr, Coordinate * screenPtr, Matrix * matrixPtr){FunctionalState retTHRESHOLD = ENABLE; if (matrixPtr->Divider != 0){/* XD = AX+BY+C */displayPtr->x = ((matrixPtr->An * screenPtr->x) +(matrixPtr->Bn * screenPtr->y) +matrixPtr->Cn) / matrixPtr->Divider;/* YD = DX+EY+F */displayPtr->y = ((matrixPtr->Dn * screenPtr->x) +(matrixPtr->En * screenPtr->y) +matrixPtr->Fn) / matrixPtr->Divider;}else{retTHRESHOLD = DISABLE;}return(retTHRESHOLD);}?이렇게 되어 있는데,첫번째 인수로 Coordinate display;두번째 인수로Read_Ads7846();세번째 인수로Matrix matrix ;를 받고 있습니다.

display 라고 하는 변수와 matrix 변수는 모두 TouchPanel.c 에서 전역변수로 선언이 되어 있는 변수이구요.Read_Ads7846() 이 함수는 앞서 분석했던 함수입니다.

터치한 부분의 좌표값을 9번 받아서 평균값을 내서 반환하는.이제 각 부분을 주석을 통해서 분석을 해보겠습니다.

FunctionalState getDisplayPoint(Coordinate * displayPtr, Coordinate * screenPtr, Matrix * matrixPtr){FunctionalState retTHRESHOLD = ENABLE; if (matrixPtr->Divider != 0){/* XD = AX+BY+C */displayPtr->x = ((matrixPtr->An * screenPtr->x) +(matrixPtr->Bn * screenPtr->y) +matrixPtr->Cn) / matrixPtr->Divide;//전역변수로 선언되어 있는 display(displayPtr) 에다가 matrixPtr 과 화면 클릭으로 얻어온 터치좌표값(screenPtr)의 값을 연산하여 저장하고 있다.

matrixPtr에는 앞서 진행한 TouchPanel_Calibrate() 으로 인해 터치의 오차값이 저장이 되어 있다.

/* YD = DX+EY+F */displayPtr->y = ((matrixPtr->Dn * screenPtr->x) +(matrixPtr->En * screenPtr->y) +matrixPtr->Fn) / matrixPtr->Divider;//위에랑 같은 과정을 좌표에다가 하고 있다.

}else{retTHRESHOLD = DISABLE;}return(retTHRESHOLD);}이상으로 터치패널 관련 함수에 대해 분석을 끝내겠습니다.

  시간이 빠듯하더군요

그리고, 27살된 7년차 트레이너 한명과 23세 여자 한명을 같이 가르치고 있어서

더 시간이 안나는듯 합니다 27세 7년차 트레이너는.. 각종 자격증은 많지만.. 자기몸이 그닥 임팩트가 없으니, 자신이 회원을 가르치면서도.."내가 제대로 하고 있는거 맞나.. 내몸도 제대로 만들어본적이 없는데" 라는 생각을 늘

하고 살았다고 합니다그래서 "트레이너는 몸이 명함이고, 몸이 경력이다 몸을 만들어봐라  극한까지 몰아봐라" 라고 조언을 해줬고, 제가 운동하는 시간에 맞춰서소리없이 따라오고 있습니다  기특하더군요 23세 여성은 공무원시험준비를 하면서, 하루 2시간정도 웨이트를 하는 친군데


운동경력이 1년인데... 운동에 대한 열정도 굉장하고, 몸이 좋습니다  마치.. 크로스핏 하는 미국여자들 몸과 비슷하더군요3일전엔가.."공무원시험 포기하고 운동쪽으로 해보고싶다" 라고 저에게 상담을 구하더군요

그런데 운동하는건 자신있는데... 다음은 어떻게 자기꿈을 향해 달려가야할지 모르겠다.

. 라고 말하더군요그래서 "단순히 운동을 좋아만 해서는 안된다.

. 내몸을 자유자재로 바꿀수있어야 한다  그경지에 오르면...이분야는 성공한다" 라고 조언을 해주었습니다그래서, 앞으로 8주간 날따라서 운동하고

8주후에 대답을 해주겠다.

. 라고 했습니다 그리고 저는

앞으로 8주더 열심히 달려 가겠습니다  여러분들 암 브라스터(Arm blaster) 라는 기구를 아십니까?저기위에 아놀드 성님이 메고 있는 노란색 보조기구가 암 브러스트 입니다조금 좋은것도 있고

되게 싼것도 있고

그렇습니다 위의 제품이 제가 실제 쓰고 있는 제품입니다저도 이번에

벌크업하면서 처음 구입해서 사용하고 있는데...."엇 이것봐라!!!" 싶은..기구입니다 바벨컬할때, 그리고 케이블컬할때 사용하는데... 이두에 굉장한 집중이 되더군요

아주아주 느낌이 베리굿 입니다 아래의 그림과 같이

덤벨컬에서도 아주 용이하게 사용이됩니다고립을 시켜주는..그런느낌입니다   그리고, 이두 말고도

삼두 케이블 프레스 다운을할때.. 삼두에 가해지는 느낌은 가히...여러분들께 이제품을 추천하지 않을수가 없을듯 합니다 후후   아놀드성님의 사진을 보면서 저기구를 자주 보긴했지만...대수롭지 않게 넘겼는데

이거 물건인데요? 여러분들께도 추천 드립니다   2013년 7월 9일 경기에서 그는 92

96마일이 나오는 패스트볼을 던졌고, 패스트볼 만큼이나 좋은 구위를 보여준 너클 커브하나를 던졌다.

그가 던지는 것을 보기 위해 스카우트들은 모여들었고, 그날 한경기를 통해서 라일리 파인트는 앤서니 몰리나 보다 더 각광받는 투수로 떠오르게 되었다.

파인트는 캔자스 시티의 외곽지역에 거주하기 때문에 조지아 주에서 열리는 Perfect Game에 참여할 수가 없었고, 그로 인해 그는 지난 2년간 비교적 잘 알려지지 않은 선수였다.

캔자스시티에서 야구는 계절 스포츠였기 때문에 그는 겨울이 되면 야구가 아닌 농구를 하며 시간을 보냈다.

6피트 4인치, 190 파운드의 체중을 보유하고 있는 파인트는 지금 보다 최소 30파운드 정도는 체중을 더 늘려도 되는 조건을 갖추고 있다.

"아버지가 항상 강조하신 것이 겨울에는 야구공을 잡지 말라는 것이었어요. 캘리포니아에서 야구를 하는 선수들은 겨울에도 공을 던지고 있다는 사실을 알고 있었지만 아버지는 좀 더 멀리 바라보고자 하는 시각을 가지고 있었습니다" -라일리 파인트-그의 아버지 닐 파인트는 아이오와 주립 대학에서 공을 던졌다.

그는 아들이 고등학교 1학년이 되던 당시 몸무게가 줄지않고 6인치의 신장이 더 커진것을 발견했고, 그 때 부터 아들을 체계적으로 관리하기로 결심했다.

그는 항상 아들에게 선수 랭킹에 대해서는 신경을 쓰지 말것을 당부했고, 고등학교 3학년이 되기전까지는 그 어떤 행사에도 참여할 필요가 없다고 말해주었다.

그가 최근까지 잘 알려지지 않은 이유도 바로 이 때문이다.

"아들을 너무 조심해서 다루고 있진 않은가 하는 우려도 들지만, 무리 시켜서 부상을 입히는 것 보다 다소 과하지만 철저하게 관리해 주는 것이 훨씬 나은 결정이라고 판단했죠" -닐 파인트-이제 그의 부모는 파인트에 대해서 크게 걱정하지 않는다.

그의 학교 성적 평점은 꾸준히 3.5를 유지해 왔고, 그가 마시는 가장 위험한 음료수는 바로 콜라이다.

"아직도 될 수 있으면 탄산 음료는 마시지 않으려고 합니다" -라일리 파인트-그는 게임은 절대 하지 않으며, 역사와 관련된 다큐멘터리를 보는 것을 즐긴다.

"과거에 대해서 배우는 것이 좋아요. 제가 가장 좋아하는 두 가지 주제는 베트남 전쟁과 세계 2차대전이죠. 그것에 대해서 듣는 것 만으로도 흥미롭죠. 한번은 베트남에 대한 8시간 분량의 다큐멘터리를 앉은 자리에서 다 보기도 했어요" -라일리 파인트-이제 2016년 드래프트가 점점 다가오면서 파인트가 과연 어느정도의 순번에 지명될지에 대한 관심도 커지고 있다.

파인트의 친구들은 그에게 백만장자가 되면 어떤 느낌일 것 같냐는 질문을 하곤 한다.

"그런 말을 할 때 마다 대화를 주제를 바꾸거나, 그 자리를 뜨곤 합니다.

그런것에 대해서 말하는 것 자체가 아주 어색하거든요" -라일리 파인트-com/gkf9876/220688958098[ARM Cortex(????)] ????, NVIC ????, ?? ?? ???http://blog.naver.com/gkf9876/220683957439 [ARM Cortex(????)] &#5106...blog.naver.com이전 포스트에서 void Exti_Configuration()를 분석했으니, 이제 나머지 함수들을 분석해볼까 합니다.

?void NVIC_Configuration(void) 바로 정의 가봅시다.

 void NVIC_Configuration(void){NVIC_InitTypeDef NVIC_InitStructure; //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);?NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 10;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 10;NVIC_Init(&NVIC_InitStructure);}NVIC_InitTypeDef 구조체를 먼저 봐야 �袂봇�. 정의를 봅시다.

typedef struct{uint8_t NVIC_IRQChannel; /*!< Specifies the IRQ channel to be enabled or disabled.This parameter can be an enumerator of @ref IRQn_Typeenumeration (For the complete STM32 Devices IRQ Channelslist, please refer to stm32f4xx.h file) */ uint8_t NVIC_IRQChannelPreemptionPriority; /*!< Specifies the pre-emption priority for the IRQ channelspecified in NVIC_IRQChannel. This parameter can be a valuebetween 0 and 15 as described in the table @ref MISC_NVIC_Priority_TableA lower priority value indicates a higher priority */ uint8_t NVIC_IRQChannelSubPriority; /*!< Specifies the subpriority level for the IRQ channel specifiedin NVIC_IRQChannel. This parameter can be a valuebetween 0 and 15 as described in the table @ref MISC_NVIC_Priority_TableA lower priority value indicates a higher priority */ FunctionalState NVIC_IRQChannelCmd; /*!< Specifies whether the IRQ channel defined in NVIC_IRQChannelwill be enabled or disabled.This parameter can be set either to ENABLE or DISABLE */} NVIC_InitTypeDef친절하게도 멤버가 어디에 쓰이는지 주석이 다 달려있습니다.

uint8_t NVIC_IRQChannel : IRQ채널을 인에이블 하는 변수입니다.

?uint8_t NVIC_IRQChannelPreemptionPriority : IRQ채널의 최 우선순위를 설정하는 변수입니다.

MISC_NVIC_Priority_Table에 명시된 대로 0

15 사이의 값을 집어넣으면 되고, 수치가 작을수록 우선순위가 높습니다.

uint8_t NVIC_IRQChannelSubPriority : IRQ채널의 두번째 우선순위를 설정하는 변수입니다.

최우선순위와 마찬가지로 MISC_NVIC_Priority_Table에 명시된 대로 0

15 사이의 값을 집어넣으면 되고 수치가 작을수록 우선순위가 높습니다.

FunctionalState NVIC_IRQChannelCmd : IRQ채널을 사용할지 안할지를 결정하는 변수입니다.

값은 ENABLE이나 DISABLE 둘중에 하나 넣으면 됩니다.

???NVIC는 앞서 말씀드렸듯이 중첩된 인터럽트를 수행하는 기능입니다.

인터럽트를 수행하면서 생기는 딜레이를 최대한 줄이기 위해 사용하는 기능이죠.?인터럽트가 240개로 겁나게 많기 ??문에 인터럽트 수가 많아지면 인터럽트들이 겹쳐서 발생하는 경우가 많아지고 NVIC가 지원이 되어 모든 예외를 우선순위에 따라 처리하게 됩니다.

?그렇기 때문에 구조체 멤버에 최우선순위와 차순위가 있게 된것이죠.??뭐, NVIC 기능에 관한건 Tail chaining, late arrival, pop pre-emption 같은 딜레이를 줄여준다던가, SysTick timer 같은 것도 있지만 저는 우선 간단한 인터럽트 처리에 대한것만 할거기 때문에 나중에 시간이 되면 한번 해보도록 하겠습니다.

??그럼 다음으로 NVIC_Init()에 대해 분석해보도록 하겠습니다.

??void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct){uint8_t tmppriority = 0x00, tmppre = 0x00, tmpsub = 0x0F; /* Check the parameters */assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd));assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority));assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority)); if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE) {/* Compute the Corresponding IRQ Priority --------------------------------*/tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700)) >> 0x08;tmppre = (0x4 - tmppriority);tmpsub = tmpsub >> tmppriority; tmppriority = NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;tmppriority |= (uint8_t)(NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub); tmppriority = tmppriority << 0x04; NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority; /* Enable the Selected IRQ Channels --------------------------------------*/NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =(uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);}else{/* Disable the Selected IRQ Channels -------------------------------------*/NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =(uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);}}생긴 모습은 역시 EXTI_Init() 이나 GPIO_Init()과 비슷하게 생겼습니다.

물론 설정한 값을 저장한 구조체를 적용시키는 과정이니까 당연하다고 볼 수 있겠네요.?그렇다면, 레지스터를 보면서 분석을 해봐야 겠습니다.

?이상하게도 제가 가지고 있는 STM사에서 제공한 데이터시트에는 NVIC에 관한 레지스터 내용이 없는데... ARM사에서 배포한 Cortex-M4의 데이터시트를 보면 내용이 들어 있습니다.

??? ??이제보니까 Cortex-M4 데이터시트에 함수에 대한 자세한 설명이 있었네요.?레지스터가 ISER, ICER, ISPR, ICPR, IPR 이 있습니다.

?ISER의 경우??If a pending interrupt is enabled, the NVIC activates the interrupt based on its priority. If aninterrupt is not enabled, asserting its interrupt signal changes the interrupt state to pending, butthe NVIC never activates the interrupt, regardless of its priority.??? 라고 나와 있는데,?해석을 해보자면, "우선순위에 따라 인터럽트를 활성화한다.

" 입니다.

뭐 인터럽트 작동을 시켜주는 레지스터입니다.

??ICER, ISPR, ICPR 과 똑같이 32비트입니다.

???NVIC->ISER 로 되어 있는 코드에서 NVIC는 위의 구조체로 되어 있는데, 32비트의 uint 변수 배열로 되어 있습니다.

배열 크기가 8개이니까 32 * 8 = 256 만큼의 인터럽트를 설정할 수 있는것이죠. 240개의 인터럽트를 충분히 저장시킬 수 있는 겁니다.

?그리고 이 변수에 어떤 값을 저장시키는지를 살펴보면,????각종 레지스터 주소들과 포트주소, 채널 주소가 선언되어 있는 stm32f4xx.h 헤더파일을 찾아가보시면 EXTI15_10_IRQn 이 어떤 값으로 선언되어 있는지를 알 수 있습니다.

?NonMaskable(-14) 서부터 FP(80)U까지 IRQ를 발생시키는 인터럽트가 있는데, 매크로 값은 우선순위가 높을 수록 작아지는것 같습니다.

??교재에 나와있는 부분인데, Vectoer Table 표입니다.

IRQ넘버를 보면 매크로값하고 똑같다는걸 알 수 있습니다.

그럼 레지스터를 알았으니,NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =(uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);이부분을 잘 분석해봐야 할것 같은데,분석하기전에 생각해볼 것은 ISER이라는 구조체 변수가 32비트 변수로 된 크기가 8인 배열이니 하위 비트부터(0번째 배열부터) 순차적으로 올라가면서 설정을 해야 할 것 같습니다.

그러면 위에서 설정한 값은 EXTI15_10_IRQn 인데, 이 값은 40이고 2진수로 0b101000 입니다.

오른쪽으로 5번 쉬프트하면 0000....0001 입니다.

즉, ISER[1]에다가 값을 지정한다는 겁니다.

ISER[1]에는 32

63번대의 인터럽트가 지정이 되는 곳이지요. 뭐 64번대부터는 ISER[2]에 지정이 되는 것이니 5번 오른쪽으로 쉬프트한다는건 맞습니다.

그럼 ISER[1]에서 몇번째에 저장이 되는지를 계산해야하는데, 0x01값을 0b101000의 하위 5번째 비트까지의 값만큼 왼쪽으로 쉬프트한걸 저장합니다.

즉, 8(01000)만큼 쉬프트한 값 0b10000000 을 넣는 겁니다.

40이란 값은 32에서 8떨어진 값이니 딱 맞습니다.

 ICER, ISPR, ICPR도 같은 원리로 저장하면 될겁니다.

?다음으로, IPR에 값을 저장하는건데, 위의 구조체를 보면 알 수 있듯이 ?8비트 변수의 크기가 240의 배열입니다.

??레지스터 모양도 8비트씩 240개로 되어 있습니다.

총 60개인데, ?tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700)) >> 0x08;tmppre = (0x4 - tmppriority);tmpsub = tmpsub >> tmppriority; tmppriority = NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;tmppriority |= (uint8_t)(NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub); tmppriority = tmppriority << 0x04; NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;이런식으로 설정하는걸 볼 수 있습니다.

...그런가보다 하고 넘어가고 싶지만... 한번 분석해봅시다.

NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority; 에서 해당 IRQ채널 값인 곳에 우선순위 값을 넣습니다.

이걸로 봐서 NVIC_InitStruct->NVIC_IRQChannel 값은 실제로 인터럽트 우선순위값이 맞는 것 같습니다.

저는 EXTI15_10_IRQn (40)을 사용했으니까 IP[40]인 곳에 값을 넣게 된겁니다.

그럼 tmppriority가 어떤값인가를 추리해보면 될텐데, 상식적으로 생각해봅시다.

인터럽트 우선순위에 해당하는 레지스터(IP[40]) 에 접근을 한다음 넣는 값은 최우선순위와 두번째 우선순위 값입니다.

근데 8비트라는 공간에 최우선순위와 두번째 우선순위를 넣으라고 한다면, 최우선순위와 두번째 우선순위의 값을 적절히 조합해서 나온 값을 8비트 레지스터에 넣어야 될겁니다.

가장 간단하게 생각한다면 상위 4비트에는 최우선순위, 하위 4비트에는 두번째 우선순위로 해서 값을 만든다음 넣으면 될겁니다.

다시한번 봅시다.

tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700)) >> 0x08;//0x700 에 SCR->AIRCR의 0b11100000000 값을 빼고 오른쪽으로 8번 시프트. 즉, SCR->AIRCR의 상위비트의 리버스값을 말한다.

즉, PRIGROUP값을 가져온것. SCR->AIRCR은 뒤에서 설명tmppre = (0x4 - tmppriority);//0b100에서 위에서 구한 SCR->AIRCR의 PRIGROUP값을 뺀다.

즉 SCR->AIRCR PRIGROUP값의 보수를 tmppre를 넣음.tmpsub = tmpsub >> tmppriority;//tmpsum에 0x0f 를 오른쪽으로 SCR->AIRCR의 PRIGROUP값 만큼 쉬프트한 값을 넣음. tmppriority = NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;//tmppriority 에 설정하려는 최우선순위 값의 tmppre만큼 오른쪽으로 쉬프트한 값을 넣음.tmppriority |= (uint8_t)(NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub);//tmppriority 의 하위 8비트에 설정하려는 두번째 우선순위의 값을 tmpsub만큼 넣음. tmppriority = tmppriority << 0x04;//tmppriority 를 오른쪽으로 4번 시프트함. NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority; 전체적으로 본다면, 최우선순위랑 두번째 우선순위값을 넣는 경계값은 SCR->AIRCR의 값에 의해서 결정됩니다.

그럼 SCR_AIRCR레지스터를 보겠습니다.

데이터시트에 안나와있어서 교재를 참고합니다.

..SCB_AIRCR 레지스터의 0b11100000000 부분은 PRIGROUP입니다.

이제 벡터키값이 뭘 의미하는지 알아야 할텐데,교재를 보면 다음과 같이 나와 있습니다.

즉, 한정된 8비트 안에 상위 3개의 비트는 Group priorities를 설정하는 범위를 결정하는 PRIGROUP입니다.

PRIGROUP를 사용자가 임의로 바꿀 수 있는것 같고 0b011로 설정하면 Sub priorities를 설정할 필요없이 Group priorities로만 우선순위가 결정됩니다.

반대로 0b111로 설정하면 Group priorities로 우선순위가 결정되는 참으로 복잡한 구조로 되어 있습니다.

..여기서 봐야될건 설정할 수 있는 우선순위의 값이 제한되어 있다는것 같네요.지금보니까 위에서 주석처리된 NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup) 이 함수에서 PRIGROUP값을 설정하는 것 같습니다.

하여튼 여기까지 void NVIC_Configuration(void) 에 대한 분석이 끝났습니다.

나머지 void EXTI0_IRQHandler();void EXTI15_10_IRQHandler();    에 대한건 다음 포스트에 올립니다.

 아래는 ARM core를 적용한 AP의 소개들이다.

  http://msnayana.blog.me/220380219124?이번엔최신 스마트폰의 AP를 좀 살펴볼까 한다.

 퀄컴의 스냅드래곤과  삼성의 엑시노스, 그리고 미디어텍의 헬리오 시리즈이다.

 부동의 1위였던 퀄컴이 미디어텍의 추적에  중저가시장을 잠식당하자바짝 긴장하여  중저가에 경쟁력 있는 AP 칩을 내 놓았다.

    또한 주력모델인 스냅드래곤 810  MSM8994가 발열과 여러가지 문제로 업체들에게 외면 당하면서 더욱 밀리는 모습이다.

 대체로 암코어 8개를 탑제한 옥타코어가 대세인데    코어는 A53, A72가 많다.

또한 그래픽코어인  GPU도 대부분의 칩들에 내장되어 있다.

 LG를 비롯한 많은 스마트폰 업체들이 이 회사 칩 AP를 사용하여 제품을  만들고 있다.

    대만 미디어텍의 헬리오(Helio)는  중저가폰 OEM 모델들에 많이 채용된다.

중국의 샤오미나 화웨이 스마트폰에 많이 채용되고 세계 100여개 업체들이 애용한다.

2015년 3월부터 개발 오픈되어 지금까지 고속상승중이다전력과 속도의 조화를 맞춘 중저가용 P모델은  Helio P10/MT6755가 있다.

익스트림이라는 X라인업은  Helio X10/MT6795가 있다.

세계최초로  암코어 A72,A53을 10개 탑제한 Helio X20/MT6797이 유명하다.

관심이 있다면 여기를 방문해 보자.. http://www.mediatek.com/en/   삼성이  퀄컴AP를  갤럭시 스마트폰에 몰아내고 자사 엑시노스로 전환한지도 좀 되어이젠 AP에 자신감이 생긴 것 같다.

최신제품인 엑시노스 7420의 벤치마크가 상당하다.

  라즈베리파이 칩을 공급한 브로드컴도 AP를 만들지만 요즘은 많이 밀리는 모습이다.

  어디 미디어텍 AP로 오픈된 개발사이트 없을까?  ================  계속 추가중.. By  수수깡 시간이 빠듯하더군요

그리고, 27살된 7년차 트레이너 한명과 23세 여자 한명을 같이 가르치고 있어서

더 시간이 안나는듯 합니다 27세 7년차 트레이너는.. 각종 자격증은 많지만.. 자기몸이 그닥 임팩트가 없으니, 자신이 회원을 가르치면서도.."내가 제대로 하고 있는거 맞나.. 내몸도 제대로 만들어본적이 없는데" 라는 생각을 늘

하고 살았다고 합니다그래서 "트레이너는 몸이 명함이고, 몸이 경력이다 몸을 만들어봐라  극한까지 몰아봐라" 라고 조언을 해줬고, 제가 운동하는 시간에 맞춰서소리없이 따라오고 있습니다  기특하더군요 23세 여성은 공무원시험준비를 하면서, 하루 2시간정도 웨이트를 하는 친군데


운동경력이 1년인데... 운동에 대한 열정도 굉장하고, 몸이 좋습니다  마치.. 크로스핏 하는 미국여자들 몸과 비슷하더군요3일전엔가.."공무원시험 포기하고 운동쪽으로 해보고싶다" 라고 저에게 상담을 구하더군요

그런데 운동하는건 자신있는데... 다음은 어떻게 자기꿈을 향해 달려가야할지 모르겠다.

. 라고 말하더군요그래서 "단순히 운동을 좋아만 해서는 안된다.

. 내몸을 자유자재로 바꿀수있어야 한다  그경지에 오르면...이분야는 성공한다" 라고 조언을 해주었습니다그래서, 앞으로 8주간 날따라서 운동하고

8주후에 대답을 해주겠다.

. 라고 했습니다 그리고 저는

앞으로 8주더 열심히 달려 가겠습니다  여러분들 암 브라스터(Arm blaster) 라는 기구를 아십니까?저기위에 아놀드 성님이 메고 있는 노란색 보조기구가 암 브러스트 입니다조금 좋은것도 있고

되게 싼것도 있고

그렇습니다 위의 제품이 제가 실제 쓰고 있는 제품입니다저도 이번에

벌크업하면서 처음 구입해서 사용하고 있는데...."엇 이것봐라!!!" 싶은..기구입니다 바벨컬할때, 그리고 케이블컬할때 사용하는데... 이두에 굉장한 집중이 되더군요

아주아주 느낌이 베리굿 입니다 아래의 그림과 같이

덤벨컬에서도 아주 용이하게 사용이됩니다고립을 시켜주는..그런느낌입니다   그리고, 이두 말고도

삼두 케이블 프레스 다운을할때.. 삼두에 가해지는 느낌은 가히...여러분들께 이제품을 추천하지 않을수가 없을듯 합니다 후후   아놀드성님의 사진을 보면서 저기구를 자주 보긴했지만...대수롭지 않게 넘겼는데

이거 물건인데요? 여러분들께도 추천 드립니다   시간이 빠듯하더군요

그리고, 27살된 7년차 트레이너 한명과 23세 여자 한명을 같이 가르치고 있어서

더 시간이 안나는듯 합니다 27세 7년차 트레이너는.. 각종 자격증은 많지만.. 자기몸이 그닥 임팩트가 없으니, 자신이 회원을 가르치면서도.."내가 제대로 하고 있는거 맞나.. 내몸도 제대로 만들어본적이 없는데" 라는 생각을 늘

하고 살았다고 합니다그래서 "트레이너는 몸이 명함이고, 몸이 경력이다 몸을 만들어봐라  극한까지 몰아봐라" 라고 조언을 해줬고, 제가 운동하는 시간에 맞춰서소리없이 따라오고 있습니다  기특하더군요 23세 여성은 공무원시험준비를 하면서, 하루 2시간정도 웨이트를 하는 친군데


운동경력이 1년인데... 운동에 대한 열정도 굉장하고, 몸이 좋습니다  마치.. 크로스핏 하는 미국여자들 몸과 비슷하더군요3일전엔가.."공무원시험 포기하고 운동쪽으로 해보고싶다" 라고 저에게 상담을 구하더군요

그런데 운동하는건 자신있는데... 다음은 어떻게 자기꿈을 향해 달려가야할지 모르겠다.

. 라고 말하더군요그래서 "단순히 운동을 좋아만 해서는 안된다.

. 내몸을 자유자재로 바꿀수있어야 한다  그경지에 오르면...이분야는 성공한다" 라고 조언을 해주었습니다그래서, 앞으로 8주간 날따라서 운동하고

8주후에 대답을 해주겠다.

. 라고 했습니다 그리고 저는

앞으로 8주더 열심히 달려 가겠습니다  여러분들 암 브라스터(Arm blaster) 라는 기구를 아십니까?저기위에 아놀드 성님이 메고 있는 노란색 보조기구가 암 브러스트 입니다조금 좋은것도 있고

되게 싼것도 있고

그렇습니다 위의 제품이 제가 실제 쓰고 있는 제품입니다저도 이번에

벌크업하면서 처음 구입해서 사용하고 있는데...."엇 이것봐라!!!" 싶은..기구입니다 바벨컬할때, 그리고 케이블컬할때 사용하는데... 이두에 굉장한 집중이 되더군요

아주아주 느낌이 베리굿 입니다 아래의 그림과 같이

덤벨컬에서도 아주 용이하게 사용이됩니다고립을 시켜주는..그런느낌입니다   그리고, 이두 말고도

삼두 케이블 프레스 다운을할때.. 삼두에 가해지는 느낌은 가히...여러분들께 이제품을 추천하지 않을수가 없을듯 합니다 후후   아놀드성님의 사진을 보면서 저기구를 자주 보긴했지만...대수롭지 않게 넘겼는데

이거 물건인데요? 여러분들께도 추천 드립니다   사실 우리의 일상생활에서 가장 흔하게 접할 수 있는 CPU 이면서 - 이미 100억개 이상의 ARM CPU 가 판매되었다 - 보통 사람들에게는 거의 알려지지 않은 회사가 있으니 바로 지금 부터 소개할 ARM 이다.

   본 포스팅에서는 이전 광고한데로  ARM 과 모바일 시장에 대한 필자의 개인적인 소견과 ARM 과 인텔의 애증의 역사에 대해서 이야기해 볼 생각이다.

   객관적인 사실에 대해서 우선 기술할 것이기는 하지만 다소 주관적인 사견과 개인적인 예측도 같이 들어갈 예정이니 읽으시는 분들은 이점을 좀 감안해 주시기 바라며 꼭 필자의 의견이 옳지 않을 수도 있기 때문에 여기에 쓴 내용들은 그냥 참고만 하시기 바란다.

    1. ARM 이란 ?   사전적인 의미를 찾아보면 ARM 은 Advanced RISC Machine 이란 뜻이다.

 그리고 과거엔 Acorn RISC Machine 이라는 의미였다.

 이 중 RISC (Reduced Instruction Set Computer) 의 약자로 뭐 이 분야에 지식이 많으신 분들은 굳이 필자 같은 아마추어의 설명이 필요 없겠지만 그래도 잘 모르시는 분들을 위해 설명한다면 다음과 같다.

   대개 범용 마이크로프로세서 (이를 테면 CPU) 구성하는 요소는 명령세트, 레지스터, 메모리 공간 등으로 이루어져 있다.

이중 명령세트는 RISC 과 이에 대비되는 CISC (Complex Instruction Set Computer) 로 나눌수가 있다.

   CSIC 는 소프트웨어, 특히 컴파일러 작성을 쉽게 하기 위해 하드웨어가 할 수 있는 일은 모두 하드웨어가 할 수 있도록 만든 컴퓨터다.

이 구조의 명령세트는 고급 언어에 각기 하나의 기계어를 대응 시킴으로 명령어 집합이 커지고 다양한 가변 길이의 명령어를 가지게 된다.

   그러나 CISC 의 단점은 주로 쓰이는 명령어는 소수에 불과한데다 구조가 복잡해지고 커짐에 따라 비용과 전력 소모가 증가한다는 것이다.

따라서 자주 사용하지 않는 명령어는 모두 소프트웨어로 구현하고 자주 쓰이는 명령어만 간략화하는 구조가 등장했으니 바로 RISC 인 것이다.

   현재 시장에서 볼수 있는 대표적인 CISC 프로세서는 바로 x86 이다.

반면 RISC 의 대표는 지금 설명하는 ARM 을 비롯하여 IBM 의 powerpc, MIPS, SPARC, Alpha 등이 있다.

그리고 아마도 ARM 이 이중에서 가장 흔하게 쓰이는 아키텍처일 것이다.

      2. ARM 의 초창기와 아콘 컴퓨터     인텔이나 AMD 가 생기기 전 페어차일드가 존재했듯이 (무슨 이야긴지 궁금하면 이전에 필자가 쓴 펜티엄 및 AMD 에 대한 이야기를 보시라) ARM 역시 갑자기 생겨난 회사는 아니었다.

그들의 기원은 신사들의 나라로는 유명하지만 IT 부분에서는 우리에게 친숙하지 못한 영국의 Acorn Computer 였다.

참고로 1990년 이후 ARM 은 아콘 컴퓨터내 독립된 팀이었고 이후에는 자회사로 독립하기 때문에 사실 ARM 이란 회사의 초기 역사는 아콘 컴퓨터 내에 있을 때 부터 시작했다는 것이 맞을 것이다.

   (여담이지만 필자의 지인 중 한분은 영국의 인터넷 속도가 너무 느리다면서 역시 한국이 IT 강국이라고 긍지를 느끼셨다.

그리나 유선 인터넷 속도는 느릴지 몰라도 영국 ARM 은 IT 강국 한국도 따라오기 힘든 CPU 설계 기술을 지녔다.

)   1978년 설립된 아콘 컴퓨터 (Acorn Computers) 는 1980년대와 1990년대 초반까지 영국의 교육용 컴퓨터 시장을 장악하면서 애플과도 비교되었던 회사였다.

그러나 1980 - 1990 년대는 인텔과 마이크로 소프트 두 쌍두마차가 컴퓨터 시장을 평정해 나가던 시기였고, 세계 각지의 토종 (?) 컴퓨터들은 씨가 마르게 되었다.

   그 시기 아콘 컴퓨터 역시 어려움을 겪을 수 밖에 없었다.

1981년 등장한 IBM PC 는 아콘의 생존을 위협했고 이로 인해 아콘 컴퓨터는 이를 물리칠 새로운 아키텍처를 모색했다.

그들은 작고 강력한 32 비트 RISC 아키텍처가 해결책이 될 수 있다고 생각했다.

따라서 ARM 아키텍처는 태생부터 인텔의 x86 타도를 위해 나왔다고 할 수 있다.

   아콘 컴퓨터는 이전에 8 비트 프로세서인 MOS Technology 6502 를 제작한 경험이 있었다.

아콘의 엔지니어들은 이를 기반으로 1983년부터 독자적인 32 비트 RISC 프로세서 설계에 돌입했다.

그리고 이 CPU 에 이름은 ARM (당시는 Acorn RISC Machine) 이었다.

이 프로세서가 처음 나온 것은 1985년 4월이었는데 당시 BBC Micro의 세컨드 프로세서로 장착된 외에는 거의 사용되지 않았다.

나중에 ARM 1 으로 불린 이 프로세서는 일종의 연습이었던 셈이다.

아무튼 이 프로세서가 ARM v1 이라 불린 첫번째 ARM 아키텍처 프로세서였다.

      (BBC Micro 의 모습 아콘 컴퓨터에서 만든 8비트 컴퓨터이다.

 카셋트 테잎으로 구동하는 고대의 컴퓨터 중 하나라고 한다.

 I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.)     다음해 들어서 아콘의 기술자들은 마침내 최초의 본격적인 ARM CPU 인 ARM 2 를 개발했다.

2 세대 아키텍처인 ARM v2 아키텍처였다.

이 프로세서는 세계에서 제일 작은 32비트 CPU 로 그 트랜지스터 숫자가 3만개에 불과할 정도로 작은 프로세서였다.

인텔 최초의 32비트 x86 프로세서인 80386 이 275000 개의 트랜지스터를 집적한 것과는 상당한 차이가 있었다.

이렇게 작은 CPU 를 만들 수 있는 원동력은 RISC 구조와 캐쉬마저 생략해버린 구조의 단순화에 있었다.

   ARM2 의 성능은 8 Mhz 클럭에서 4 MIPS 정도였다.

 앞으로 MIPS 와 DMIPS 라는 단위를 앞으로 ARM CPU 의 성능을 비교하는 데 사용할 것인데 여기에는 주의할 점이 있다.

MIPS (million instruction per second) 라는 단위는 초당 처리 가능한 명령어의 갯수를 종류에 관계 없이 측정한 것이다.

이 방식의 문제점은 서로 명령어의 종류가 다를 경우 공정한 비교가 어렵다는 것이다.

   예를 들어 1500 m 경주를 하는데 한사람은 자전거를 타고 다른 사람은 달리기를 한다면 공정한 비교가 되겠는가? 같은 이치로 CISC 와 RISC 로 서로 구조가 다른 CPU 에서 MIPS 로 성능 비교를 한다면 공정한 결과가 나오기 힘들다.

같은 작업을 해도 RISC CPU 의 MIPS 가 훨씬 높게 나오기 때문이다.

따라서 MIPS 값 결과는 ARM CPU 간의 상대적 성능 비교시 참고만 해야 할 것이다.

 참고로 MIPS에는 부동 소숫점 연산을 제외한 Dhrystone MIPS 와 이를 포함한 Whetstone MIPS 이 있다.

ARM 에서 공개한 자료를 보면 DMIPS 가 좀더 상대적인 비교에 사용되니 참조하시기 바란다.

   아무튼 1987년 아콘 컴퓨터는 회심의 대작 (?) 인 Acorn Archimedes 컴퓨터를 발표한다.

이는 개인용 홈 PC 시장을 타겟으로 등장했으며 한때나마 영국 토종 컴퓨터의 자존심을 지켰던 컴퓨터였다.

운영 체제는 RISC OS 를 사용했으며 1990년대 중반까지 명맥을 이어갔다.

그러나 1990년 초반 부터 인텔의 x86 프로세서와의 경쟁에서 아콘 컴퓨터는 서서히 몰락하기 시작했다.

   (아콘 컴퓨터의 아르키메데스 시스템의 모습. 모니터는 나중에 바꾼듯 하다.

필자는 한번도 실물은 본적이 없다.

혹시 실물 보신 분 계신지 ?  This image has been (or is hereby) released into the public domain by its author, Philcrbk at the wikipedia project. This applies worldwide )   1990년대는 컴퓨터 시장에도 글로벌 바람이 불어닥치기 시작해서 세상에 모든 개인용 컴퓨터가 미국의 CPU 와 OS 를 사용해야만 하는 시대가 도래했다.

결국 이러한 상황에서 ARM의 처지도 어려워 질 수 밖에 없었다.

결과론적으로 본다면 90년대 중반 이후로 ARM은 인텔에 맞서 영국의 토종 컴퓨터를 지켜낸다는 목적 달성에 실패했다고 할 수 있다.

    그러나 아콘 컴퓨터도 살기 위한 몸부림을 치기 시작했다.

 ARM 은 3세대 아키텍처인 ARM v3 의 CPU 들을 선보였는데 역시 작은 RISC 프로세서 답게 트랜지스터 수가 3만 5천개에 불과할 정도로 적었다.

인텔 CPU들은 세대를 거듭하면서 트랜지스터 숫자가 기하 급수적으로 증가한 반면 ARM은 소신대로 작고, 값싸고 전기 적게 먹는 CPU 를 고집했던 것이다.

문제는 성능도 고만고만 했다는 점이다.

   최초의 ARM v3 칩인 ARM 60 은 3DO 의 Interactive multiplayer 에 사용되었다.

(1993년) 파나소닉에서 만든 이 게임기는 699 달러에 달하는 고가로 인해 결국 시장에서 퇴출당하는 운명에 처하게 된다.

그러나 훗날 ARM 은 닌텐도와의 끈끈한 관계를 바탕으로 콘솔 시장에서 그 때의 수모를 갚게 된다.

  (파나소닉의 3DO    CCL 에 따라 복사 허용 저자 표시   저자   Bidou (take screenshot) ; NaSH (work on image))   다시 ARM 은 절치 부심 노력하에 3세대 아키텍처에 속하는 ARM 7 을 개발했다.

(ARM 은 vX 형식으로 아키텍처 버전을 표시한다.

ARM 7/9/11 등 뒤의 숫자는 패밀리로 예를 들어 ARM 700 모델이면 ARM v3 에 속하는 ARM 7 패밀리 계통 제품이다) ARM 7 패밀리는 1994년 출시된 아콘 컴퓨터의 Risc PC 모델에 탑재되었다.

  (Acorn Risc PC 600 모델이다.

아콘의 Risc PC 시리즈 중 하나인데 PC 라는 명칭에서 IBM 호환 PC 와 경쟁하려는 의도를 짐작할 수 있다.

물론 그 의도는 실패로 끝났다.

아마 DVD 는 나중에 단듯  CCL  에 따라  복사 허용 저자 표시   저자  Christof Efkemann )    당시 ARM 7 패밀리는 대략 0.68 DMIPS/MHz 정도의 퍼포먼스를 보였으며 40 MHz로 작동했기 때문에 대략 27.2 DMIPS 정도되는 성능을 가졌던 셈이다.

비슷한 시기에 등장한 80486 DX4 의 경우 100 MHz 에서 70.7 MIPS 의 성능을 보였는데, 앞서 설명했듯이 MIPS 수치는 참고로만 삼아야 겠지만 CISC 프로세서가 RISC 프로세서보다 MIPS 수치에서 몇배 앞서 간다면 대략 그 성능 차이를 짐작할 수 있을 것이다.

   더구나 당시 컴퓨팅 환경은 점차 멀티미디어 및 게이밍의 중요해졌고, 운영체제도 이전보다 화려한 그래픽 UI 가 도입되면서 ARM 처럼 저성능 RISC PC 의 설자리는 더욱 줄어들 수 밖에 없었다.

따라서 아콘 컴퓨터는 점차 개인용 PC 시장에서 밀려나 셋톱 박스나 지금의 넷탑의 선조라고 해야할 네트워크 컴퓨터등으로 활로를 모색했다.

     3. ARM 의 성장   그러나 이 시기 ARM 에는 중요한 변화가 일어나고 있었다.

그것은 애플 및 DEC 등이 ARM 의 새로운 고객이 되었다는 것이다.

 그리고 ARM 역시 아콘 컴퓨터 내에서 서서히 자회사로 독립하여 ARM Ltd 를 거쳐 ARM Holdings 로 분사해 나스닥과 런던 주식 시장에 상장했다 (1998년)    애플은 1993년 뉴튼 OS 를 사용한 첫번째 PDA 인 메세지 패드 (MassagePad) 시리즈를 공개했다.

이 PDA 는 ARM 610 프로세서를 사용했다.

이는 주목할 만한 변화였다.

ARM 의 RISC 프로세서들은 성능적으로 같은 시기의 인텔 CPU 와 경쟁하기 어려웠다.

그러나 너무나 작고 단순한 CPU 이기 때문에 전력 소모가 매우 적을 뿐 아니라 제조 단가도 아주 낮다는 큰 장점이 있었다.

이는 모바일 기기에 아주 적합한 특징이었다.

   따라서 ARM 이 모바일 기기에 CPU 로 채택된 것은 아주 시의 적절한 선택이었다.

그리고 향후 모바일 시장을 장악할 ARM 의 전설이 여기서 시작되는 것이다.

   (애플 메세지 패드 100 의 모습. 이시기 부터 시작된 애플과 ARM 의 관계는 현재 아이폰과 아이팟으로까지 이어졌다고 하겠다.

   I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide. )    한편 상당한 기술력을 지닌 IT 업체로 파산한 이후 수많은 IT 기업에도 영향을 준 DEC 역시 망하기 전 ARM 과 새로운 프로젝트를 계획했다.

1995년 DEC 는 모바일 기기에 적합한 저전력 성능을 가지고 있지만 성능이 너무 안나오는 ARM 아키텍처를 개량해서 보다 강력한 ARM 아키텍처 CPU 를 만들고자 했다.

타겟은 셋톱박스 시장과 PDA 시장이었다.

   이 계획은 스트롱 암 (StrongARM) 으로 알려져 있는데, DEC 와 ARM 의 엔지니어들은 빠르게 결과물을 내놓았다.

이 스트롱 암 프로세서들은 4세대 ARM 아키텍처 (ARM v4) 에 기반했으며 클럭당 성능을 1.0 DMIPS/MHz 급으로 끌어올린 첫 번째 ARM 아키텍처였다.

   첫 스트롱 암 제품인 SA - 110 은 203 MHz 로 작동했으며 약 200 DMIPS 정도의 성능을 가졌고 애플의 뉴튼 2X00 시리즈 PDA 및 아콘의 Risc PC 등에도 탑재되었다.

후에 233 MHz 모델이 추가되었다.

  (DEC 의 StrongARM SA 110 제품    CCL 에 따라 복사 허용 저자 표시   출처 Source: http://www.cpu-collection.de/?l0=i&i=1347&sd=1 )   사실 StrongARM 제품들은 ARM 의 약점인 성능을 크게 개선한 모델이긴 했다.

비록 당시 펜티엄에 견줄 성능은 아닐지 몰라도 PDA 시장에서는 가능성을 보여준 제품이었다.

참고로 DEC 에서 이 제품이 나왔기 때문에 DEC 의 다른 고성능 RISC 프로세서인 알파 칩과 혼동되어 ARM이 알파 칩 아키텍처로 알려지기도 했는데 이는 잘못된 것이다.

   아무튼 StrongArm 의 문제는 바로 DEC 가 ARM 의 모기업 아콘 컴퓨터 처럼 망해가던 회사라는 점이다.

결국 DEC 는 여러개로 조각나서 팔려나가게 되는데 그 중 스트롱 암 부분은 공교롭게도 인텔에 매각된다.

(1997년) 이미 x86 시장의 절대 강자로 군림하던 인텔이 뭐가 아쉬워서 인텔 CPU 에 밀려 망해가던 아콘 컴퓨터의 ARM 아키텍처를 구입했는지는 나중에 설명하겠다.

   그러나 4세대 ARM 아키텍처 (ARM v4) 의 가장 큰 성공은 스트롱 암이 아니라 ARM7TDMI 일 것이다.

이 계열의 ARM 프로세서들의 성공을 통해 ARM 은 시장에서 안착할 수 있었다.

ARM7TDMI 는 게임보이 어드벤스드, 닌텐도 DS, 아이팟, 그리고 노키아의 휴대폰은 물론 온갖 모바일 기기에 채택되면서 모바일 시장에서 ARM 의 입지를 굳힌 명작이었다.

(참고로 성능은 70 MHz 에서 63 DMIPS 였다)   ARM7TDMI 는 당시에 수억개가 팔려나갔으며 지금도 일부 생산되는 CPU 이다.

그러나 ARM 은 이 CPU 를 판매하면서 인텔과는 다른 판매 방식을 개척했다.

그것은 규모가 작은 설계 팀인 ARM 이 직접 개발에서 생산, 마켓팅까지 담당하는 것이 아니라 ARM 은 설계만 하고 다른 반도체 제조사에 라이센스를 주어 필요한 만큼 ARM 아키텍처의 CPU 를 생산하게 한 것이다.

ARM CPU 는 크기가 워낙 작아 생산 단가가 매우 저렴했으며 ARM 자체에서 라이센스 비용을 매우 저렴하게 책정한 덕분에 곧 여러 회사에서 널리 쓰이는 CPU 가 되었다.

   이후 등장한 4세대 ARM 아키텍처 CPU 는 ARM9TDMI 였다.

이중 ARM920T 은 16KB/16KB 의 캐쉬를 갖추었으며 닌텐도 DS/DSi, 노키아, 모토로라, HTC, 소니 에릭슨, LG (쿠키폰), 삼성 등 온갖 회사에 라이센스되어 생산되었고, 심지어 국산 휴대용 게임기 GP2X Wiz 등 각종 모바일 기기에 사용되었다.

참고로 180 MHz 로 작동하는 ARM920T 는 약 200 DMIPS 의 퍼포먼스를 보였다고 한다.

   본래 ARM 아키텍처는 아콘의 RISC OS 를 운영체제로 삼았지만 ARM 자체가 확산되면서 다양한 Linux 계통 운영체제 - Fedora, Ubuntu, Chrome OS, Android 등 - 은 물론 BSD 계통이나 open solaris 계통 운영 체제들도 ARM 에서 구동가능하게 되었다.

   다만 ARM 자체는 x86 와는 태생부터 다른 RISC 프로세서 였기 때문에 x86용으로 개발된 윈도우 계통의 운영체제는 구동할 수 없었다.

그러나 모바일 기기부터 임베디드 시장에 이르기 까지 워낙 광범위한 분야로 마른 장작에 불을 붙이듯 퍼져나갔기 때문에 결국 마이크로 소프트 마저 ARM 에서 구동이 가능한 윈도우 CE 와 윈도우 모바일을 출시했던 것이다.

    1998년 ARM 은 명칭을 Advanced RISC Machines 로 변경하고 나스닥과 런던 주식 시장에 상장 했다.

이후 ARM 은 파산해가던 아콘 컴퓨터로 부터 떨어져 나오게 된다.

ARM 의 모기업 아콘 컴퓨터가 완전히 파산한 건 2000년 이었다.

이후 2006에 아콘 컴퓨터의 상호를 별개의 회사가 구매해서 컴퓨터를 판매하긴 했지만 이들이 생산한 건 그냥 인텔 CPU 와 윈도우 운영체제를 쓴 평범한 컴퓨터들이었다.

   아무튼 영국의 애플이라 불리던 아콘 컴퓨터는 파산했다.

그러나 호랑이가 죽어서 가죽을 남기듯 아콘은 죽어서 ARM 이라는 유산을 남겼다.

그리고 결국 오늘날 ARM 은 아콘 컴퓨터가 살아 있을 당시 못했던 과업에 도전하고 있는데 그것은 CPU 시장에서 인텔에 아성에 도전하는 것이었다.

   음 그런데 ARM v5,6,7 에 대한 이야기나 인텔의 Xscale 및 아이폰 CPU VS 옴니아 CPU (둘다 ARM 계통이다.

) 의 비교등에 대한 이야기는 글이 길어졌으니 다음에 써야 겠다.

 그리고 아마 다음에는 부모 (아콘) 을 죽인 원수 (인텔) 에 복수 (?)를 하는 ARM 의 이야기도 같이 써보겠다.

       (일러두기 : 최근 저작권 문제와 관련하여 새롭게 포스트에 표시를 하려 합니다.

이 포스트의 사진과 이미지들 중public domain 의 표시가 있는 것은 자유롭게 사용이 가능하도록 공개된 것이나 발표된 지 오래되어 저작권이 소멸된 것 들입니다.

이를 복사해서 사용하는 것은 저작권법에 위반되지 않습니다.

단 원자작자 표시가 있고, 이를 표시할 의무를 지정할 경우 이에 따라야 합니다.

  GNU/CCL 에 의하여 복사가 허용된 이미지를 가져온 것들도 따로 표시했습니다.

복사 및 재배포가 자유로운 이미지들이므로 역시 복사해서 사용해도 문제되지 않습니다.

)             -_-;;; 아 물론 인터럽트가 ARM에서 매우 중요해서 그 페이지가 엄청 많아서 나중에 다시 읽어봐야한다.

ADC는?!!!일단 ADC를 해보려면, 예를들어 가변저항을 돌려서 그 값의 변화를 보고자한다 하면데이터 송수신이 먼저 되어야하므로, UART 통신을 먼저하고 넘어가는게 수순인 것 같다.

그다음에 ADC하고, 블루투스 하면 될 것 같다.

------------------------------------------------------------------칩과 PC간 통신을 위해서 UART 통신 프로그램이 필요한데책 저자분은 RealTerm이란 프로그램을 사용한다고 한다.

( 다운로드 )------------------------------------------------------------------디버거를 통한 Trace 하다가 난 오류새로운 Workspace를 만들고 새 프로젝트를 만들고 했는데, 이런 오류가 떴다.

"Program file does not exist" !!! (뭐여....; 우리사이에 이런거 없었잖아..) 왜 뜨는지 하나도 이해가 안가다가 이것저것 찍접거리다가 해결했다.

여기로 가서여기 비어있는 곳에다가 아래처럼 *.elf 파일을 추가시켜주면 끝난다! 쨔잔! 이렇게! 하면 문제 없이 디버깅이 된다.

ㅇㅇ;
공유하기 링크
TAG
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
댓글
댓글쓰기 폼