ARM TrustZone technology는 secure payment, DRM(Digital rights management), 그리고 Web 기반 서비스를 포함하는 거대한 다수의 어플리케이션 을 위한 고성능 컴퓨팅 플랫폼에서 보안을 위한 system-wide 접근 방식이다.
TrustZone technology는 Cortex-A 프로세서에 통합되어져 있으며 AMBA AXI bus와 특정 TrustZone System IP를 통해 전 시스템에 영향을 미친다.
이 시스템 접근은 악의적인 소프트웨어가 보안 영역에 존재하는 개인 데이터, 보안키, 또는 어플리케이션을 기록하거나 상호작용하지 않도록 안전하게 하기 위해서 프로세서와 함께 키보드와 스크린을 포함하는 주변장치를 보호하는 것이 가능하다.

TrustZone을 왜 사용하는가?

모바일 장치는 인터넷으로 부터 대량의 여러 어플리케이션을 다운로드하는 것을 가능하게 하는 공개형 소프트웨어 플랫폼이다. 이러한 어플리케이션은 품질을 보장하기 위해서 장치 OEM으로 부터 종종 인가를 받는다. 그러나 모든 기능을 테스트하지 않으며, 증가적으로 악의적인 코드는 이러한 분류의 장치를 타겟으로 생성되어왔다.

병행하여 높은 가치의 데이터를 제어하기 위한 모바일 장치들을 위한 요구는 엄청난 힘을 얻고 있다. 새로운 비지니스 모델들은 handset으로부터 원격으로 특정 기간에 대한 최신 헐리우드 블럭버스터를 다운로드하고 보기 위해서 지불을 가능하게 하거나 은행 계좌를 관리하고 비용을 지불하는 일들이 최근 생겨나고 있다.

이러한 트렌드들은 Trojan그리고 Virus들과 같은 악의 있는 어플리케이션 그리고 malware를 위한 다음 새 분야를 모바일 핸드셋으로 만들기 위한 가능성을 가지고 있다. 그러나 ARM TrustZone technology와 통합된 SecurCor 간섭 불가(tamper resistant) 요소를 기반으로 진보한 보안 Technology를 통해 feature-rich open operating 환경과 robust 보안 솔루션을 제공하는 장치를 개발하는 것이 가능하다.

- 응용 예제 -
Secure PIN entry for enhanced user authentication in mobile payments & banking.
Secured NFC communications channel.
DRM(Digital Right Management).
Software license management.
Loyalty-based applications.
Access control of cloud-based documents.
e-Ticketing Mobile TV.

Source:http://www.arm.com/products/processors/technologies/trustzone.php

'Hardware > Processor Design' 카테고리의 다른 글

TrustZone[미완료]  (0) 2011.03.03
ARM ELF(Executable and Linking Format)[미완료]  (0) 2011.01.05
OMAP3440 Processor  (0) 2010.09.17
OpenSPARC processor  (0) 2009.11.28
Posted by Act of God

ELF(Executable and Linking Format)
Object File에는 주요한 3 타입이 있다.
- Re-locatable file
: executable file 또는 shared object file을 생성하기 위해서 다른 object file 들과 linking하기 위한 유용한 code와 data를 가지고 있다.
- Executable file
: 실행을 위한 유용한 program을 가지고 있다.
- Shared object file
: 두 context들에서 linking을 위한 유용한 code와 data를 가지고 있다. 첫째, link editor가 다른 object 파일을 생성하기 위해서 다른 re-locatable와 shared object file들과 함께 이것을 처리한다. 두번째, dynamic linker는 process image를 생성하기 위해서 executable file과 다른 shared object file을 함께 이것을 조합한다.

assembler 또는 compiler 그리고 link editor에 의해 생성될때, object file은 processor에서 직접 실행하기위한 목적의 program들의 binary이다. 다른 abstract machine들을 필요로 하는 program들은 제외되어진다.

File Format
Object file은 program linking(프로그램을 빌드할때)과 program execution(프로그램을 실행할때)에 관여한다. 편의와 효율성을 위해서 object file format은 file의 content들의 병렬 보기를 제공한다. 아래 그램은 object file의 구성을 보여준다.


Linking view
 ELF Header
 Program Header Table optional
 Section 1
 ...
 Section n
 ...
 ...
 Section Header Table

Execution view
 ELF Header
 Program Header Table
 Segment 1
 Segment 2
 ...
 Section Header Table optional

ELF header는 시작에 존재하고 file의 구성을 설명하기 위한 road map을 가지고 있다. section은 linking view를 위한 object file 정보의 bulk를 가지고 있다.(instructions, data, symbol table, relocation information, 기타 등등)

Program header table(만약 존재한다면)은 process image가 어떻게 생성되는지를 시스템에게 알려준다. Process image(프로그램을 실행)를 빌드하기위해 사용되는 파일들은 Program header table을 가져야한다. re-locatable file들은 이것을 필요로 하지 않는다.
모든 section은 table에서 entry를 가지며, 각 entry는 section name, section size, 등등과 같은 정보가 주어진다. linking동안 사용되는 파일들은 section header 파일들을 가져야하고 다른 object 파일들은 이것을 가지거나 가지지 않을 것이다.

*위 그림에서 ELF header 이후에 바로 program header table, section들에 따르는 section header table을 나타내고 있을지라도 실제 파일들은 다르다. 더욱이 section들과 segment들은 특정한 순서가 없으며, 오직 ELF 파일만이 파일에 고정된 위치를 가진다.

----------------------------------------------------------------------------------------------------------------
Special Sections.

ELF에서 여러 Section들은 이미 정의 되어져있고 프로그램과 제어 정보를 가지고 있다. 이러한 Section들은 OS(Operating system)에서 사용되어지고, 다른 OS를 위해서 다른 형태와 속성를 가진다.

Executable file들은 Linking 단계를 통해 개개의 Object file과 Library들로 부터 생성되어진다. Linker는 다른 Object file들 사이에 Reference들을 분석하고 Object file들에서 완전한 Reference들을 조정한다. 그리고 instruction들을 재배치한다.
Linking과 Loading 단계는 Object file들에 정의된 정보를 필요로하며, .dynamic과 같은 특정 Section에 이 정보를 저장한다.

각 OS는 일련의 Linking 모델들을 지원한다. 이것은 두 카테고리로 분류된다.
- Static. 일련의 Object file들, System Library들 그리고 Library archive들은 정적으로 묶여진다. Reference들은 분석되어지고 완전히 필요한 것을 완비한 Executable file은 생성되어진다.
- Dynamic. 일련의 Object file, library, system shared resource 그리고 shared library들은  executable을 생성하기 위해서 함께 연결되어진다. 이 Executable이 load되어 질 때, 다른 shared resource와 dynamic library들은 성공적으로 동작하기위해서 프로그램을 위한 시스템에서 이용가능하게 만들어져야만 한다.
동적으로 Link된 Executable file을 위한 실행 시간에서 Reference들을 분석하기 위해서 사용되는 일반적인 방법은 OS에 의해서 사용되어지는 Linkage 모델에 설명되어진다. 그리고 이 Linkage 모델의 실제 구현은 Processor-specific component들을 포함 할 것이다.

여기에는 또한 .debug.line 그리고 .bss, .data, .data1, .rodata 그리고 .rodata1을 포함하는 Program control을 지원하는 Section이 있다.
.bss - 이 Section은 프로그램의 메모리 이미지에 배포하는 초기화되지 않은 데이터를 가지고 있다. 정의에 따라서 시스템은 프로그램이 동작을 시작할때 0과 함께 데이터를 초기화한다. 이 Section은 SHT_NOBITS Section Type에 의해서 나타나는 것과 같이 File공간을 차지하지 않는다.
 
.comment - 이 Section은 버전 제어 정보를 가지고 있다.

.data.data1 - 이러한 Section들은 프로그램의 메모리 이미지에 배포하는 초기화된 데이터를 가지고 있다.

.debug - 이 Section은 Symbolic debugging을 위한 정보를 가지고 있다. 이러한 컨텐츠들은 상세화 되어있지 않다. 접두사 .debug를 가진 모든 Section name들은 나중에 사용하기 위해서 예약되어있다.

.dynamic - 이 Section은 dynamic linking information를 가지고 있으며, SHF_ALLOC와 SHF_WRITE와 같은 속성을 가진다.
OS와 프로세서는 SHF_WRITE가 설정되었는지를 결정한다.

.hash - 이 Section은 Symbol hash table을 가지고 있다.

.line - 이 Section은 Symbolic debugging을 위한 라인 번호 정보를 가지고 있다. 이것은 소스 프로그램과 머신 코드 사이간의 일치를 표시한다. 컨텐츠들은 상세화되어 있지 않다.

.note  - 이 Section은 format에서 정보를 가지고 있다.

.rodata.rodata1 - 이러한 Section은 프로세스 이미지에서 쓸수없는 세그먼트세 일반적으로 배포되는 읽기 전용 데이터를 가지고 있다.

.shstrtab - 이 Section은 Section name을 가지고 있다.

.strtab - 이 Section은 거의 공통적으로 오직 symbol table entry와 관련된 name을 표현하는 문자열을 가지고 있다. 만약 파일이 Symbol string table을 포함하는 load가능한 세그먼트를 가진다면, 이 Section의 속성은 SHF_ALLOC bit를 포함할 것이다. 반대라면 이 bit는 off 일 것이다.

.symtab - 이 Section은 Symbol table을 가진다. 만약 이 파일이 Symbol table을 포함하는 load 가능한 세그먼트를 가진다면, 이 Section의 속성은 SHF_ALLOC bit를 포함할 것이다. 아니라면 이 bit는 Off 일 것이다. 

.text - 이 Section은 프로그램의 text 또는 Executable instruction들을 가진다.

dot(.)을 가진 Section name은 System을 위해서 예약되어 있다. 어플리케이션은 System section과 충돌을 피하기 위해서 접두사 없이 name을 사용한다. Object file은 같은 이름을 가진 section이 하나 이상을 가질 것이다.

'Hardware > Processor Design' 카테고리의 다른 글

TrustZone[미완료]  (0) 2011.03.03
ARM ELF(Executable and Linking Format)[미완료]  (0) 2011.01.05
OMAP3440 Processor  (0) 2010.09.17
OpenSPARC processor  (0) 2009.11.28
Posted by Act of God
Motorola XT800W 모토그램에서 사용되는 OMAP3440 프로세서.

OMAP3440 Processor는 높은 어플리케이션과 멀티미디어 성능을 요구하는 모바일 디바이스를 타겟으로하여 증가된 성능과 향상된 멀티미디어 이득을 제공한다. OMAP3440 Processor는 최근의 스마트 폰과 MID(Mobile Internet Device)의 큰 디스플레이에서 새로운 어플리케이션을 즐기는 것을 가능하게할 뿐만아니라 HD(High-Definition)를 녹화하기 위한 기능을 사용자에게 제공하기 위해서 모바일 장치에 Full HD Camcorder 기능을 가지고 있다.
OMAP3440은 720p HD Video recorde와 playback을 지원하기 위해서 TI의 고성능 IVA 2+ 멀티미디어 가속기를 사용한다.
또한 OMAP3440은 고성능 모바일 장치에서 사용되는 큰 디스플레이의 이점을 살리기 위한 어플리케이션들을 개선하기 위해서 최대 800Mhz에서 동작 할 수 있는 Superscalar ARM Cortex-A8을 사용한다.

Graphics.
OMAP3440 Processor는 뛰어난 그래픽 성능과 앞선 사용자 인터페이스를 제공하기 위해서 Imagination Technologies의 POWERVR SGX 코어를 임베디드 하였다. 그리고 OpenGL ES 2.0, OpenVG를 지원한다. TI는 OpenGL ES 2.0을 통해서 제공되는 "Smart pixel" 기술을 가진 동적 그리고 복잡한 이미지를 가능하게 한다. 이런 유일한 기술은 각 Pixel이 개별적으로 프로그램되어지기 위한 이미지를 가능하게 한다.

Product.
나머지 OMAP 3 제품 Family와 같이 OMAP3440은 ARM Cortex-A8 superscalar microprocessor core를 집적한다. OMAP3440에서 TI의 기술들과 조합될때, Handset에서 예상되는 전력 효율을 유지하면서 ARM Cortex-A8은 아주 빠른 사용자 인터페이스, 빠른 데이터 접근, 그리고 엔터테인먼트 어플리케이션을 가능하게 한다.

Ref:"OMAP 3 Processors: OMAP3440", www.ti.com.



'Hardware > Processor Design' 카테고리의 다른 글

TrustZone[미완료]  (0) 2011.03.03
ARM ELF(Executable and Linking Format)[미완료]  (0) 2011.01.05
OMAP3440 Processor  (0) 2010.09.17
OpenSPARC processor  (0) 2009.11.28
Posted by Act of God
OpenSPARC processor는  UltraSPARC Architecture라 불리우는 프로세서 구조에 기초를 둔다. OpenSPARC T1 설계는 UltraSPARC Architecture 2005에 기초를 두고 OpenSPARC T2는 UltraSPARC Architecture 2007에 기초를 둔다.

UltraSPARC Architecture는 SPARC V9 architecture의 계통을 잇는다. 그리고 "Level 1" SPARC V9 스팩을 완전히 따른다.
UltraSPARC Architecture는 기본적인 데이터 타입으로서 32-bit와 64-bit 정수, 그리고 32-bit, 64-bit, 128-bit 부동 소수점을 지원한다. 32-bit와 64-bit 부동 소수점 타입은 IEEE Std 754-1985를 따르며, 128-bit 부동 소수점 타입은 IEEE Std 1596.5-1992를 따른다. Architecture는 일반 목적 정수, 부동소수점, Special state/status register instruction, 32-bit 크기 instruction format으로 인코드된 모든 것을 정의한다. load/store instruction은 선형, 2^64Byte 가상 주소 공간 주소를 사용한다.

'Hardware > Processor Design' 카테고리의 다른 글

TrustZone[미완료]  (0) 2011.03.03
ARM ELF(Executable and Linking Format)[미완료]  (0) 2011.01.05
OMAP3440 Processor  (0) 2010.09.17
OpenSPARC processor  (0) 2009.11.28
Posted by Act of God
TAG OpenSPARC