KR20050059562A - 임베디드 시스템의 메모리 구조 및 동작 방법 - Google Patents

임베디드 시스템의 메모리 구조 및 동작 방법 Download PDF

Info

Publication number
KR20050059562A
KR20050059562A KR1020030091250A KR20030091250A KR20050059562A KR 20050059562 A KR20050059562 A KR 20050059562A KR 1020030091250 A KR1020030091250 A KR 1020030091250A KR 20030091250 A KR20030091250 A KR 20030091250A KR 20050059562 A KR20050059562 A KR 20050059562A
Authority
KR
South Korea
Prior art keywords
code
area
main
program
main program
Prior art date
Application number
KR1020030091250A
Other languages
English (en)
Inventor
김연선
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020030091250A priority Critical patent/KR20050059562A/ko
Publication of KR20050059562A publication Critical patent/KR20050059562A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 임베디드 시스템의 메인 메모리인 에스디램의 효율적인 활용 방법에 관한 것으로, 본 발명에 따르면, 임베디드 프로세서에서 수행되는 시스템 초기화에 필요한 스타트 업 코드 영역 및 오퍼레이팅 시스템 역할을 담당하는 모니터 코드 영역으로 구성된 롬(ROM)과, 상기 메인 프로그램 수행을 위한 텍스트 코드 영역, 데이터 및 BSS 코드 영역으로 구성되어, 외부 호스트로부터 상기 메인 프로그램 수행을 위한 응용 프로그램 코드를 상기 영역으로 직접 다운로드 받는 메인 메모리와, 상기 롬 내의 코드 수행을 위한 스택 영역, 데이터 및 BSS 영역과, 상기 메인 메모리 내의 메인 프로그램의 런 타임 수행을 위한 스택 영역으로 구성된 인터널 램을 포함하여 구성됨으로써, 메인 메모리가 되는 에스디램의 크기를 최소화하며, 메인 프로그램 수행시 CRT 코드 수행 시간만큼의 실행 시간을 단축시킴으로써 시스템의 성능을 향상시키는 효과가 있다.

Description

임베디드 시스템의 메모리 구조 및 동작 방법{Memory structure in embedded system and Operating mehtod of the same}
본 발명은 임베디드 시스템의 메모리 활용 방안에 관한 것으로, 특히 메인 메모리인 에스디램의 효율적인 활용 방법에 관한 것이다.
임베디드 시스템(Embedded System)이란 미리 정해진 특정 기능을 수행하기 위해 컴퓨터의 하드웨어와 소프트웨어가 조합된 전자 제어 시스템을 말한다.
이러한 임베디드 시스템의 일반적인 구성을 첨부한 도 1에 도시하였다.
도 1과 같이, 임베디드 시스템은, 시스템 운영에 필요한 메인 프로그램을 수행하는 임베디드 프로세서(embedded processor)(1)와, 시스템 초기화에 필요한 스타트 업 코드 및 OS 역할을 담당하는 모니터 코드를 탑재하는 롬(ROM)(2)과, 메인 프로그램 수행을 위한 메인 프로그램의 코드 영역 및 특정 하드웨어 운용을 위한 전용 메모리 영역들을 탑재하는 에스디램(SDRAM)(4)과, 상기 롬(2)내의 코드 수행 및 에스디램(4)내의 메인 코드 수행에 필요한 데이터 및 BSS 영역들을 탑재하는 인터널 램(internal ram)(3)과, 미도시하였지만 다양한 주변 유닛들(peripheral units) 및 시스템 구현을 위한 특정 하드웨어 유닛들(specific hardware units)로 구성된다.
이러한 구성을 갖는 임베디드 시스템 구현시 각 영역에 할당되는 메모리의 크기는 시스템의 구현 비용에 직접적으로 영향을 준다. 따라서, 각 영역의 메모리를 효율적으로 사용함으로 인해 시스템 구현에 요구되는 메모리 크기를 줄이고자 하는 노력은 최적화된 시스템 설계에 매우 중요한 요소가 된다.
이처럼 중요한 메모리 크기를 결정짓는 요소들을 살펴보기 위해 첨부한 도 2에 일반적인 임베디드 시스템의 메모리 구조를 나타내었다.
도 2와 같이, 롬(2) 메모리는 프로세서(1) 및 주변 유닛 초기화를 위한 스타트 업(Start up) 코드 영역(21)과, 아주 작은 규모의 오퍼레이팅 시스템(operating system : OS) 역할을 담당하는 모니터 프로그램 코드 영역(22)으로 구성되며, 상기 코드 영역(21,22) 크기의 합으로 상기 롬(2)의 크기가 결정된다.
또한, 인터널 렘(3)은 모니터 프로그램의 런 타임(run time) 수행을 위한 스택(stack) 영역(31)과, 데이터 및 BSS(Basic Synchronized Subset) 영역(32), 그리고, 응용 프로그램의 런 타임 수행을 위한 스택 영역(33)으로 구성되며, 상기 각 영역(31,32,33)들의 크기의 합으로 상기 인터널 램(3)의 크기가 결정된다.
또한, 에스디램(4)은 시스템의 메인 프로그램 수행을 위한 CRT(C Runtime Library) 코드 영역(41)과, 응용 프로그램 코드 영역인 텍스트 코드 영역(42), 데이터 코드 영역(43), BSS 코드 영역(44)과, 응용 프로그램의 런 타임 수행을 위해 요구되는 데이터 및 BSS 영역(45)으로 구성되며, 상기 각 영역(41, ‥·,45)들의 합으로 상기 에스디램(4)의 크기가 결정된다.
이와 같이 구성되는 각 영역의 메모리 크기는 앞서 언급한 바와 같이 임베디드 시스템의 설계시 구현 비용에 직접적인 영향을 주며, 각 영역에 대한 메모리 엑세스 시간은 시스템의 성능 향상에 중요한 역할을 담당한다. 따라서, 메모리의 크기를 줄이는 것은 중요한 문제가 아닐 수 없다.
따라서, 본 발명의 목적은 이와 같은 종래 기술의 문제점을 해결하기 위해 안출한 것으로서, 메모리, 특히 메인 메모리인 에스디램의 효율적인 사용을 통해 시스템 구현에 요구되는 메모리 크기를 최소화함으로써 시스템의 구현 비용을 최소화하는데 있다.
본 발명의 다른 목적은, 메인 코드의 수행 시간을 단축시킴으로써 시스템의 성능 향상을 도모하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 임베디드 시스템의 메모리 구조는, 임베디드 프로세서에서 수행되는 시스템 초기화에 필요한 스타트 업 코드 영역 및 오퍼레이팅 시스템 역할을 담당하는 모니터 코드 영역으로 구성된 롬(ROM)과, 상기 메인 프로그램 수행을 위한 텍스트 코드 영역, 데이터 및 BSS 코드 영역으로 구성되어, 외부 호스트로부터 상기 메인 프로그램 수행을 위한 응용 프로그램 코드를 상기 영역으로 직접 다운로드 받는 메인 메모리와, 상기 롬 내의 코드 수행을 위한 스택 영역, 데이터 및 BSS 영역과, 상기 메인 메모리 내의 메인 프로그램의 런 타임 수행을 위한 스택 영역으로 구성된 인터널 램을 포함하여 구성되는 것을 특징으로 한다.
본 발명에 따른 임베디드 시스템의 동작 방법은, 시스템 초기화에 필요한 스타트 업 코드와 오퍼레이팅 시스템 역할을 담당하는 모니터 프로그램 코드를 수행함으로써 메인 프로그램 수행 준비를 완료하는 단계와, 상기 단계와 동시에, 텍스트 섹션으로 구성되는 코드와 데이터 섹션 및 BSS 섹션으로 구성되는 코드로 나누어 외부 호스트로부터 상기 메인 프로그램 수행을 위한 응용 프로그램 코드를 다운로드 받는 단계와, 상기 응용 프로그램 코드가 다운로드된 데이터 섹션 및 BSS 섹션을 이용하여 메인함수를 호출함으로써 메인 프로그램을 수행하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
이하 발명의 바람직한 실시예에 따른 구성 및 작용을 첨부한 도면을 참조하여 설명한다.
도 2에서 임베디드 시스템의 중추적인 역할을 담당하는 임베디드 프로세서(1)는 시스템 부팅시 롬(ROM)(2) 영역에 적재되어 있는 코드, 즉, 시스템 초기화에 필요한 스타트 업 코드와, 아주 작은 규모의 오퍼레이팅 시스템 역할을 담당하는 모니터 프로그램 코드를 수행함으로써 시스템 운영에 필요한 메인 프로그램 수행 준비를 완료하게 된다.
상기 프로세서(1)가 이러한 준비를 하는 동안, 시스템의 에스디램 메모리(4)에는 메인 프로그램 수행을 위한 응용 프로그램 코드가 외부 호스트로부터 다운로드되는데, 이를 첨부한 도 3에 나타내었다.
도 3과 같이, 시스템의 외부 호스트(5)로부터 메인 프로그램 수행을 위한 응용 프로그램 코드가 CRT 코드 영역(41) 및 응용 프로그램 코드에 해당하는 영역(42,43,44)으로 다운로드 된다. 즉, 다운로드 전 세팅된 어드레스(address) 또는 에스디램(4) 메모리의 초기 어드레스로 한 번 다운로드 되는 것이다.
상기 응용 프로그램 코드는 그 특성상 여러 개의 메인 함수를 동시에 수행하는 경우가 아니라, 시스템의 특정 하드웨어 운용을 위한 코드들로 구성되는 경우가 대부분이므로, 일반적으로 운영체제(Operating System)없이 하나의 메인 함수와 다수개의 인터럽트 서비스 루틴들로 구성된다.
따라서, 시스템 구현시 메인 프로그램에 대한 코드를 미리 컴파일해 볼 수 있으며, 컴파일된 결과에 따라 각 코드의 크기를 섹션별로 예측할 수 있다. 다시 말해, 시스템의 메인 메모리가 되는 에스디램(4) 메모리의 크기를 시스템 구현 시 외부 호스트(5)로부터 다운로드 되는 메인 코드의 크기 즉, 텍스트 섹션, 데이터 섹션, 그리고 BSS(Basic Synchronized Subset) 섹션에 해당하는 각 코드 영역(42,43,44)과 CRT 코드 영역(41)의 크기 등으로 미리 계산 가능하다.
한편, 외부 호스트(5)에서 에스디램(4)으로의 다운로드가 완료되면, 프로그램의 수행 흐름은 모니터 프로그램에서 메인 프로그램으로 변경되는데, 이 때 프로세서(1)는 도 3의 CRT 코드 수행을 통해 메인 코드 내의 데이터 섹션 코드와 BSS 섹션 코드를 런 타임 수행을 위한 데이터 및 BSS 영역(45)으로 복사한 후 메인 함수를 호출함으로써 메인 프로그램을 수행하게 된다.
그러나, 이와 같이 구성되어 동작하는 에스디램(4)의 메모리 활용 측면에서 보면, 동일한 코드 즉, 데이터 섹션 코드와 BSS 섹션 코드를 다운로드 영역과 런타임 영역에 중복하여 사용함으로써 메모리가 낭비되고 있음을 알 수 있다. 뿐만 아니라, 런 타임 수행시 CRT 코드를 수행해야 하는 절차도 요구되므로, 프로그램의 수행 성능 측면에서도 마이너스 요인이 되는 것이다.
따라서, 본 발명에 따르면, 시스템 부팅 시 시스템의 외부로부터 다운로드 되는 메인 프로그램 코드를 두 개의 코드 영역 즉, 텍스트 섹션으로 구성되는 코드 영역(42)과, 데이터 및 BSS 섹션으로 구성되는 코드 영역(45)으로 나누어 각각 해당하는 데이터를 다운로드 받도록 한다.
이러한 방법을 사용함으로써 런타임 수행시 CRT 코드 수행을 통해 복사되는 메모리 크기인 데이터 섹션 코드 영역(43)과 BSS 섹션 코드 영역(44)에 해당하는 크기만큼 메모리를 줄이는 방법을 사용하게 되는데, 이를 첨부한 도 4를 참고하여 좀 더 자세히 설명하면 다음과 같다.
도 4는 본 발명에 따른 에스디램의 구조 및 다운로드 기법을 나타낸 도면이다.
도 4와 같이, 본 발명에 따른 에스디램(100)은 다운로드 어드레스를 두 번 설정해주는 방법으로, 명령어들이 저장되는 텍스트 섹션 코드 영역(101)과, 데이터 및 BSS 섹션 코드 영역(102)으로 나누어 외부 호스트(5)로부터 메인 프로그램 수행을 위한 응용 프로그램 코드를 다운로드 받게 된다.
즉, CRT 코드에 의한 데이터 및 BSS 코드의 복사 과정을 생략한대신, 데이터 및 BSS 섹션 코드 영역(102)으로 직접 다운로드 받도록 한 것이다.
이와 같은 방법으로 에스디램(100) 메모리를 활용할 경우, 도 4와 같이, 도 3에 나타낸 에스디램(4) 메모리의 0x8000번지부터 0x9FFF 번지에 해당하는 크기 만큼의 메모리 크기를 줄이게 된다. 또한, 프로세서(1)가 CRT 프로그램을 수행할 필요가 없으므로, CRT 코드(41) 크기 만큼 메모리를 추가로 절약할 수 있다.
뿐만 아니라, 메인 프로그램 수행시 CRT 코드의 수행 시간 만큼의 실행 시간을 단축시킬 수 있으므로, 프로그램의 수행 성능 또한 향상시킬 수 있다.
물론, 다운로드 시간 측면에서 보면 다운로드 어드레스를 두 번 설정해주어야 하므로, 다운로드 시간이 조금 길어질수는 있으나, 이 시간 보다는 데이터 및 BSS 코드의 복사 시간이 훨씬 길기 때문에, 전체적으로 보면 메인 프로그램의 수행 시간을 단축시키게 된다.
이상의 설명에서와 같이 본 발명에 따른 임베디드 시스템에서 메모리 구조 및 동작 방법은 다음과 같은 효과가 있다.
첫째, 임베디드 프로세서가 내장되는 시스템의 다운로드 코드를 두 개의 영역으로 나누어 다운로드 함으로써 메인 메모리가 되는 에스디램의 크기를 최소화하는 효과가 있다.
둘째, 메인 프로그램 수행시 CRT 코드 수행 시간만큼의 실행 시간을 단축시킴으로써 시스템의 성능 향상 측면에서 최적화된 임베디드 시스템 설계가 가능한 효과가 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정하는 것이 아니라 특허 청구 범위에 의해서 정해져야 한다.
도 1은 일반적인 임베디드 시스템의 구조를 간략히 나타낸 도면
도 2는 일반적인 임베디드 시스템의 메모리 구조를 나타낸 도면
도 3은 일반적인 임베디드 시스템에서 에스디램의 구조 및 다운로드 방법을 나타낸 도면
도 4는 본 발명에 따른 임베디드 시스템에서 에스디램의 구조 및 다운로드 방법을 나타낸 도면
- 도면의 주요 부분에 대한 부호의 설명 -
1 : 임베디드 프로세서 2 : 롬(ROM)
3 : 인터널 램(internal RAM) 5 : 호스트
100 : 에스디램(SDRAM) 101 : 텍스트 코드 영역
102 : 데이터 및 BSS 영역

Claims (4)

  1. 시스템 초기화 및 오퍼레이팅 시스템을 통해 시스템 운영에 필요한 메인 프로그램을 수행하는 임베디드 프로세서를 포함하여 구성된 임베디드 시스템의 메모리 구조에 있어서,
    상기 임베디드 프로세서에서 수행되는 시스템 초기화에 필요한 스타트 업 코드 영역 및 오퍼레이팅 시스템 역할을 담당하는 모니터 코드 영역으로 구성된 롬(ROM)과,
    상기 메인 프로그램 수행을 위한 텍스트 코드 영역, 데이터 및 BSS 코드 영역으로 구성되어, 외부 호스트로부터 상기 메인 프로그램 수행을 위한 응용 프로그램 코드를 상기 영역으로 직접 다운로드 받는 메인 메모리와,
    상기 롬 내의 코드 수행을 위한 스택 영역, 데이터 및 BSS 영역과, 상기 메인 메모리 내의 메인 프로그램의 런 타임 수행을 위한 스택 영역으로 구성된 인터널 램을 포함하여 구성되는 것을 특징으로 하는 임베디드 시스템의 메모리 구조.
  2. 제 1 항에 있어서,
    상기 응용 프로그램 코드는 하나의 메인 함수와 다수개의 인터럽트 서비스 루틴으로 구성됨을 특징으로 하는 임베디드 시스템의 메모리 구조.
  3. 제 1 항에 있어서,
    상기 메인 메모리는 에스디램(SDRAM)인 것을 특징으로 하는 임베디드 시스템의 메모리 구조.
  4. 시스템 초기화에 필요한 스타트 업 코드와 오퍼레이팅 시스템 역할을 담당하는 모니터 프로그램 코드를 수행함으로써 메인 프로그램 수행 준비를 완료하는 단계와,
    상기 단계와 동시에, 텍스트 섹션으로 구성되는 코드와 데이터 섹션 및 BSS 섹션으로 구성되는 코드로 나누어 외부 호스트로부터 상기 메인 프로그램 수행을 위한 응용 프로그램 코드를 다운로드 받는 단계와,
    상기 응용 프로그램 코드가 다운로드된 데이터 섹션 및 BSS 섹션을 이용하여 메인함수를 호출함으로써 메인 프로그램을 수행하는 단계를 포함하여 이루어짐을 특징으로 하는 임베디드 시스템의 동작 방법.
KR1020030091250A 2003-12-15 2003-12-15 임베디드 시스템의 메모리 구조 및 동작 방법 KR20050059562A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030091250A KR20050059562A (ko) 2003-12-15 2003-12-15 임베디드 시스템의 메모리 구조 및 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030091250A KR20050059562A (ko) 2003-12-15 2003-12-15 임베디드 시스템의 메모리 구조 및 동작 방법

Publications (1)

Publication Number Publication Date
KR20050059562A true KR20050059562A (ko) 2005-06-21

Family

ID=37252458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030091250A KR20050059562A (ko) 2003-12-15 2003-12-15 임베디드 시스템의 메모리 구조 및 동작 방법

Country Status (1)

Country Link
KR (1) KR20050059562A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745256B1 (ko) * 2005-10-11 2007-08-01 엘지전자 주식회사 임베디드 시스템에서의 코드 오버레이 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745256B1 (ko) * 2005-10-11 2007-08-01 엘지전자 주식회사 임베디드 시스템에서의 코드 오버레이 방법

Similar Documents

Publication Publication Date Title
EP3491519B1 (en) Optimized uefi reboot process
KR100311581B1 (ko) 정적장치구동기들의동적확장
US6247172B1 (en) Method for a translation system that aggressively optimizes and preserves full synchronous exception state
US6059840A (en) Automatic scheduling of instructions to reduce code size
CN102236621B (zh) 计算机接口信息配置系统及方法
US7930443B1 (en) Router having routing engine software instance and interface controller software instance on a single processor
CN105138382A (zh) 一种Android系统升级的方法及终端
WO2008113291A1 (fr) Procédé et système pour appeler des fonctions
WO2022237098A1 (zh) 一种异构程序执行方法、装置、计算设备及可读存储介质
CN112506517A (zh) 一种裸机系统级激励交叉编译系统及编译方法
US20060095726A1 (en) Independent hardware based code locator
KR20050059562A (ko) 임베디드 시스템의 메모리 구조 및 동작 방법
CN113535215B (zh) 一种虚拟机热升级方法、装置、设备以及存储介质
CN104281443B (zh) 利用tcm实现代码、数据替换的方法
KR100288561B1 (ko) 잡 스케쥴러 방식 소프트웨어의 프로그램 패치 방법
RU2718235C1 (ru) Архитектура операционной системы для обеспечения поддержки поколений микроядер
CN111124624A (zh) 一种基于TriCore架构处理器的操作系统任务上下文管理方法
JP4548505B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN114691429A (zh) 一种文件还原方法、装置、计算设备及可读存储介质
US20040181784A1 (en) Method of converting software program for single processor to software program for multiprocessor
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP2002182931A (ja) 共通osシステムコール方法
KR20050039452A (ko) 임베디드 시스템의 메모리 구조
US20190197235A1 (en) Server and setting method thereof
JP2000293362A (ja) Osカーネルコードの動的構成変更と修正の方法及びそのシステム並びに情報記録媒体

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination