1. 목적(purpose)

ㄱ. 타이젠 관련 실행파일의 빌드를 위해 ARM 크로스 컴파일러를 설치한다.

(ARM toolchain install to cross compile for build of Tizen)

ㄴ. 설치한 크로스 컴파일러의 설정을 한다.

(Configuration ARM cross complie toolchain)

※ 추후 u-boot를 빌드에 64비트 실행이 존재하므로 이전 우분투를 설치할 때 64BIT 운영체제를 설치하도록 한다. (You must install 64bit OS to build u-boot. U-boot builder have 64bit execute file)


2.내용(body)

ㄱ. 툴체인 다운로드 (Toolchain Download)

a. 먼저 http://www.mentor.com/에서 IA32용 GNU/Linux ARM EABI를 받아야함.

(First, you have to download 'GNU/Linux EABI for IA32' in http://www.mentor.com/)

https://sourcery.mentor.com/GNUToolchain/release1294?lite=arm 접속(enter the link)


위와 같은 화면이 보이면 'Download Lite Edition' 클릭한다.('Download Lite Edition' click)


각 양식들을 체우고 'Get Lite!' 버튼을 클릭한다. (Fill in all of form.)


그 후 메일을 확인하면 ARM EABI를 받을 수 있는 메일이 수신되어있다. 메일을 열면 아래와 같은 주소가 담긴 메일이 보인다.(Then, you can receive a mail to download ARM EABI)


주소가 담긴 메일에서 빨간 네모박스 위치의 주소를 클릭하면 ARM의 EABI를 다운받는다.

(Click the link inside of red box to download ARM EABI)

※ 여기서 EABI란(임베디드 응용 프로그램 이진 인터페이스, embedded-application binary interface)는 임베디드 소프트웨어 프로그램을 수행하는 파일 형식, 자료형, 레지스터 사용, 스택 프레임 조직, 명령 변수를 위한 표준 변환을 정의하고 있다.

EABI를 지원하는 컴파일러는 이와 같은 또다른 컴파일러가 만든 코드와 호환되는 목적 코드를 만드므로 개발자들이 다른 컴파일러가 만들어 낸 목적 코드와 한 컴파일러로 만든 라이브러리를 연결할 수 있게 한다. 자체적인 어셈블리어 코드를 작성하는 개발자들은 EABI를 사용하여 호환 컴파일러가 만들어낸 어셈블리 코드와 상호 작용하게 할 수 있다.

일반 목적의 운영 체제에서 ABI와 EABI의 주된 차이점은 권한 명령이 응용 프로그램 코드 내에서 실행되는 점, 동적 링크가 요구되지 않는다는 점(심지어는 아예 동적 링크를 허용하지 않는 경우도 있음), 메모리 저장을 위해 더 작아진 스택 프레임 조직을 갖춘다는 점이 있다.

(An embedded-application binary interface (EABI) specifies standard conventions for file formats, data types, register usage, stack frame organization, and function parameter passing of an embedded software program.

Compilers that support the EABI create object code that is compatible with code generated by other such compilers, thus allowing developers to link libraries generated with one compiler with object code generated with a different compiler. Developers writing their own assembly language code may also use the EABI to interface with assembly generated by a compliant compiler.

The main differences of an EABI with respect to an ABI for general purpose operating systems are that privileged instructions are allowed in application code, dynamic linking is not required (sometimes it is completely disallowed), and a more compact stack frame organization is used to save memory.[4] The choice of EABI can affect performance.)


빨간 네모박스의 IA32 GNU/Linux TAR 파일을 받는다. (Download IA32 GNU/Linux TAR file inside of redbox)


다운 파일이 Downloads 폴더 안에 생성된것을 볼 수 있다.(arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu-tar.bz2)

(You can see tar file in Downloads folder. File name is arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu-tar.bz2.)


위와 같은 tar -xvf 명령어를 통해 압축을 푼다.(Extract tar file by tar -xvf command)


압축을 풀면 arm-2010q1 이라는 폴더가 생성됨을 볼 수 있다.(You can see arm-2010q1 folder after extract.)


위와 같은 cp 명령어를 통해 사용자가 원하는 폴더로 ARM EABI 폴더를 이동시킨다.(move arm-2010q1 folder to every dir where you want by cp.)


폴더가 이동되었다면 자신의 HOME 폴더의 .bashrc 파일을 수정한다. .bashrc 파일은 bash shell이 시작될 때 초기화되는 sell script들을 모아놓은 파일이다.(If folder is moved successfully, you have to edit .bashrc in your HOME folder.)


위와 같이 .bashrc에 자신의 ARM EABI 위치에 대한 경로를 추가해 준다.(Specify your ARM EABI folder PATH end of the .bashrc file.)

export ARCH=arm 

export CROSS_COMPILE=arm-none-eabi-

PATH=$PATH:(Your ARM BAEI folder path)/bin;

:wq 명령어를 통해 저장하고 복귀한다.(Return to shell bu :wq command.)


ㄴ. 위와 같은 툴체인 설치가 완료되었다면 32bit 라이브러리를 설치한다.(Install 32bit libs)

'sudo apt-get install ia32-libs' 명령어를 통해 설치하게 된다.


3.결론(conclusion)

ㄱ. 지금까지 ARM 크로스 컴파일을 위한 ARM EABI 설치를 진행해 보았다.(We installed ARM EABI for ARM cross complie)

ㄴ. 다음은 타이젠의 u-boot 소스를 받고 엑시노스 4412의 콘피규어 파일을 포팅하고 빌드해 보도록 하겠다.(We will download u-boot of Tizen and porting Exsynos4412 config file to Tizen u-boot next time)

Posted by 시크한공돌이
,

ARM big.LITTLE


ARM big little 프로세서는 이기종 컴퓨팅 시스템 프로세서로 ARM사에서 개발 하였음.

낮은 전력의 프로세서 코어드리과 더욱 강한 프로세서 코어들이 연결되는 형태로 되어있다.

 

이 프로세서의 의도는 다이나믹 컴퓨팅을 하는데 있어 클럭 스케일링만을 사용하는것 보다 낮은 전력을 사용하도록 조정하는데 있음.

 

2011년 10월 big.LITTLE 프로세서 Cortex-A7이 발표됬다, 이 프로세스는 Cortex-A15와 구조적으로 호환 될 수 있도록 디자인 되었다.

 

2012년 10월애 ARM은 Cortex-A53와 Cortex-A57(ARMv8) 코어들을 발표했다, 이 프로세서들 또한 각자가 빅리틀 칩 안에서 호환 가능하다. 

  

목차 

1. 클러스터 마이그레이션

2. 인-커널 스위쳐(CPU 마이그레이션)

3. 이종 멀티 프로세실(글로벌 태스크 스케쥴링)

4. 스케쥴링

5. 글로벌 테스크 스케쥴링의 이점들

6. 적용된 기기들

7. 레퍼런스들

8. 외부 링크들


Cluster migration

 big.LITTLE에는 다른 성능의 프로세서 코어들을 이어주기 위한 리눅스 커널에 포함되어 스케쥴러의 종속되어있는 3가지 방법이 있다. 클러스터화 모델 접근법은 첫 그리고 가장 단순한 적용이다.  

 이 접근법일 때 OS 스케쥴러는 두 프로세서 클러스터들 중 하나만 볼 수 있다. CPU의 부하가 특정 포인트에 다가갔을 때 시스템은 다른 클러스터로 전이된다.

 모든 관련 데이터는 L2 cache를 통하여 바로 이동 된다. 첫 번째 코어 클러스터는 꺼지고 다른 하나의 클러스터는 활성화 된다. 캐쉬 일관성 인터커넥트(Cache Coherent Interconnect, CCI)가 사용된다.  이 모델은 삼성 Exynos 5 (5410)에 구현되었다. 

  

 

In-kernel switcher(CPU migration)

 

인커널 스위쳐(IKS)를 통해 이루어지는 CPU 마이그레이션은 'Big'코어와 'LITTLE'코어의 쌍으로 이루어져 있는데, 한 칩 안에 가능한한 많은 동일한 칩들로 구성되어있다.  

 각 쌍들은 가상의 하나의 코어처럼 작동하고, 한 시점에 반드시 둘 중 하나의 코어만이 작동하게 된다. 'Big' 코어는 높은 요구 상황에서 작동하고, 'LITTLE'코어는 낮은 요구 상황에서 작동한다. 가상 코어의 변화(High와 low의 사이 변화)가 요구될 때, 새로 사용되는 코어는 전력이 인가되고, 실행 상태(Running state)가 전이되며, 사요여이 중지된 코어는 꺼진다, 그리고 새로운 코어상에서 프로세싱이 지속된다.  

스위칭은 cpufreq 프레임워크에 의해서 완료된다.  완벽한 big.LITTLE IKS의 구현은 리눅스 3.11이나 3.12쯤이 예상된다. big.LITTLE IKS는 클러스터 마이그레이션의 발전된 형태이고, 제일 큰 다른점은 각 쌍들이 스케쥴러에게 가시적이라는 점이다. 

 

 'big'과 'LITTLE'코어들의 비대칭(non-symmetric) 그룹화에는 더 많은 합의점들이 포함된다. 하나의 칩이 한 두개의 'big' 코어와 보다 많은 'LITTLE' 코어들을 가질 수 있다, 혹은 반대의 경우도 있다. Nvidia가 Tegra 3 SoC에 저 전력의 'companion core'라는 이것과 비슷한 것을 만들었다. 

   

Heterogeneous multi-processing (global task scheduling)

 

 big.LITTLE의  가장 강력한 사용 모델은 모든 코어들을 동시에 사용가능한 이기종 멀티-프로세싱(geterogeneous multi-processing)이다.  이 모델에서는 높은 우선순위거나 높은 계산능력을 요하는 쓰레드들이 벡그라운드 task들 처럼 낮은 우선순위나 낮은 계산능력을 요하는 쓰레드들과 동시에 같은 빅 코어를 할당 받을 수 있고, 'LITTLE' 코어들에 의해서도 수행 될 수 있다.  몇 쿼터들 안에 리눌수 커널 속에 big.LITTLE의 상위 GTS 패치들에 완전 포함 될 예정이다. 이 모델은 삼성 Exynos 5 Octa(5420)에 포함되었다. 

 

 

Scheduling

쌍으로 된 처리 방식은 운영체제(OS)가 이미 존재하는 DVFS(dynamic voltage and frequency switching) 기능을 완전하게 지원하기위해 스위칭을 하는것을 허용한다. 

 커널 안에 이미 존재하는 DVFS 지원(ex. 리눅스의 cpufreq)은 간단하게 frequencies/voltages 리스트를 보거나 그 둘 사이가 보기 좋도록 switch 될 것이다, 마치 이것이 존재하는 하드웨어에서 작동하는 듯이. 

 어쨌든,  low-end 슬롯들은 'LITTLE' 코어에서 동작하고 high-end 슬롯들은 'big' 코어에서 동작하게 됨. 

 

 그렇지 않으면, 아마도 모든 코어들은 각 process/thread 가 실행되는 곳이 어딘지 결정할 수 있는 커널의 스케쥴러에 노출될 것이다. 

이것은 non-paired 방식이 요구된다 하지만 paired 코어들에서도 가능 할 수 있다. 이것은 몇가지 커널 스케쥴러에 특별한 문제들을 야기한다, 그것은, 최소한 현대 상품화된 하드웨어들에 있어, SMP 시스템을 사용한 모든 코어들이 같은 문제를 가지고 있다고 추정할 수 있다. 

 

Advantages of global task scheduling(글로벌 task 스케쥴링의 이점들)

  •  코어들의 사이의 migrated된(이주된) 워크로드의 매끄러운 컨트롤. 이유는 스케쥴러가 태스크들을 코어들 사이에 직접적으로 migrating(이주)시킴으로, 커널의 오버해드가 감소되고 전력이 절약이 될 수 있다.
  • 스케쥴러 안에 구현됨 또한 switching(변환) 결정이 IKS 안에 구현된 cpufreq 프레임 워크에 구현된 것보다 빠르다. 
  • non-symmetrical(비대칭) SoCs(e.g. 2 Cortex-A15 코어들과 4 Cortex-A7 코어들)을 쉽게 서포트하기 위한 능력.
  • 모든 코어들을 simultaneously(동시에, 일제히) 사용하기 위해 Soc는 IKS와 비교하여 향상된 최고 퍼포먼스를 제공한다.

 

 

구현들

 

SoC

Semiconductor technology

big cores

LITTLE cores

GPU

Memory interface

Wireless Radio Technologies

Availability

Utilizing Devices

HiSilicon K3V3

28 nm

1.8 GHzdual-coreCortex-A15

1.2 GHz dual-coreCortex-A7

Mali-T658

H2 2013

SamsungExynos 5 Octa (5410 model)[8][9]

28 nm

1.6-1.8 GHzquad-coreCortex-A15

1.2 GHz quad-core Cortex-A7

PowerVR SGX544MP3

32-bit dual-channel 800 MHz LPDDR3 (12.8 GB/sec)

Q2 2013

Samsung Galaxy S4(International version only, not including Canada, Sweden, or USA [10])

SamsungExynos 5 Octa (5420 model)[11]

28 nm

1.8-2.0 GHz quad-core Cortex-A15

1.3 GHz quad-core Cortex-A7

Mali-T628MP6

32-bit dual-channel 933 MHz LPDDR3e (14.9 GB/sec)

Q4 2013

Samsung Galaxy Note 3 [12]

Renesas Mobile MP6530[13]

28 nm

2 GHz dual-core Cortex-A15

1 GHz dual-core Cortex-A7

PowerVR SGX544

Dual-channel LPDDR3

LTE CAT4


 

References

  1. ^ "ARM Unveils its Most Energy Efficient Application Processor Ever; Redefines Traditional Power And Performance Relationship With big.LITTLE Processing" (Press release). ARM Holdings. 19 October 2011. Retrieved 2012-10-31.
  2. Jump up^ "ARM Launches Cortex-A50 Series, the World’s Most Energy-Efficient 64-bit Processors" (Press release). ARM Holdings. Retrieved 2012-10-31.
  3. Jump up^ Brian Jeff (18 June 2013). "Ten Things to Know About big.LITTLE"ARM Holdings. Retrieved 2013-09-17.
  4. Jump up^ George Grey (10 July 2013). "big.LITTLE Software Update"Linaro. Retrieved 2013-09-17.
  5. Jump up^ Peter Clarke (6 August 2013). "Benchmarking ARM’s big-little architecture". Retrieved 2013-09-17.
  6. Jump up^ Big.LITTLE Processing with ARM Cortex™-A15 & Cortex-A7ARM Holdings, September 2013, retrieved 2013-09-17
  7. Jump up^ Brian Klug (2013-09-11). "Samsung Announces big.LITTLE MP Support in Exynos 5420".AnandTech. Retrieved 2013-09-16.
  8. Jump up^ Andrew Cunningham (10 January 2013). "Samsung’s new eight-core Exynos 5 Octa SoC promises not to hog battery"Ars Technica. Retrieved 2013-01-10.
  9. Jump up^ James Trew (9 January 2013). "Samsung announces eight-core Exynos 5 'Octa' chip at CES".Engadget. Retrieved 2013-01-10.
  10. Jump up^ "US, Canada and Sweden getting Snapdragon 600 based Galaxy S4"GSMArena. 18 March 2013. Retrieved 2013-03-18.
  11. Jump up^ "Samsung Primes Exynos 5 Octa for ARM big.LITTLE Technology with Heterogeneous Multi-Processing Capability" (Press release). Samsung Electronics. 10 Semtember 2013. Retrieved 2013-09-17.
  12. Jump up^ Abhijeet M. (16 September 2013). "Samsung Galaxy Note 3 is powered by Exynos 5420, has 2720MB of available RAM". SAMMOBILE. Retrieved 2013-09-17.
  13. Jump up^ MP6530Renesas Mobile, December 2012, retrieved 2013-09-17

 

 

외부 링크들

 

 

 

 

 

 

 

 


출처 : 위키피디아(영문 페이지 http://en.wikipedia.org/wiki/ARM_big.LITTLE

 - 지속 번역 및 수정 예정 동시에 위키피디아도 수정 예정임 / 오번역이나 이해가 다른 부분이 있으면 지적 부탁드립니다. / 위키는 당일 번역 후 하루 뒤에 업로드 됩니다.) 

'시스템 > 이론' 카테고리의 다른 글

시스템의 구조에 대해서 알아보기  (0) 2013.12.10
Posted by 시크한공돌이
,