KR20050043299A - Apparatus and method for handling interrupt using dynamic allocation memory in embedded system - Google Patents

Apparatus and method for handling interrupt using dynamic allocation memory in embedded system Download PDF

Info

Publication number
KR20050043299A
KR20050043299A KR1020030078135A KR20030078135A KR20050043299A KR 20050043299 A KR20050043299 A KR 20050043299A KR 1020030078135 A KR1020030078135 A KR 1020030078135A KR 20030078135 A KR20030078135 A KR 20030078135A KR 20050043299 A KR20050043299 A KR 20050043299A
Authority
KR
South Korea
Prior art keywords
interrupt
memory
interrupt signal
signals
embedded system
Prior art date
Application number
KR1020030078135A
Other languages
Korean (ko)
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 KR1020030078135A priority Critical patent/KR20050043299A/en
Publication of KR20050043299A publication Critical patent/KR20050043299A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Abstract

본 발명은 임베디드 시스템에서 인터럽트를 처리하기 위한 방법에 있어서, 발생 가능한 모든 인터럽트 신호 중 필요한 일부 또는 전부의 인터럽트 신호를 선택하는 과정과, 메모리를 동적으로 할당하는 과정과, 상기 선택한 신호를 상기 동적으로 할당된 메모리에 기록하는 과정과, 상기 메모리에 기록된 각각의 인터럽트 신호와 그에 상응하는 인터럽트 서비스 루틴(ISR) 함수를 일대일 맵핑하는 과정을 포함함을 특징으로 한다. The present invention provides a method for processing an interrupt in an embedded system, the method comprising: selecting a part or all of interrupt signals required among all possible interrupt signals, dynamically allocating a memory, and dynamically selecting the selected signals. And a step of one-to-one mapping of each interrupt signal recorded in the memory and the corresponding interrupt service routine (ISR) function.

Description

임베디드 시스템에서 동적 할당 메모리를 사용하여 인터럽트를 처리하기 위한 장치 및 방법{APPARATUS AND METHOD FOR HANDLING INTERRUPT USING DYNAMIC ALLOCATION MEMORY IN EMBEDDED SYSTEM} Apparatus and method for handling interrupts using dynamic allocation memory in embedded systems {APPARATUS AND METHOD FOR HANDLING INTERRUPT USING DYNAMIC ALLOCATION MEMORY IN EMBEDDED SYSTEM}

본 발명은 임베디드 시스템(embedded system)에서 인터럽트(interrupt)를 처리하기 위한 장치 및 방법에 관한 것으로, 특히 메모리를 할당하여 인터럽트를 처리하기 위한 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for handling interrupts in an embedded system, and more particularly, to an apparatus and method for handling interrupts by allocating memory.

임베디드 시스템은 제한된 자원을 가지고 특정한 목적을 갖는 작업을 처리하기 위해 임의의 기기에 내장된 시스템이라고 정의할 수 있다. 일 예로, 휴대폰에서상기 제한된 자원이라면 크기와 배터리 등이 있다. 또한, 상기 특정한 목적을 갖는 작업이란 전화의 송수신을 담당하는 호(call) 처리가 될 수 있다. 이렇듯 상기 임베디드 시스템은 우리 주변에서 쉽게 찾아볼 수 있는 시스템이다. 실제로 연간 생산되는 임베디드 시스템은 데스크톱 PC에 비해 훨씬 많은 양을 차지하고 있으며 다양한 분야에서 활용되고 있다. 상기 임베디드 시스템이 활용되고 있는 분야와 대표적인 적용예들을 살펴보면 하기와 같다. An embedded system can be defined as a system embedded in any device for processing a specific purpose task with limited resources. For example, in the mobile phone, the limited resources include size and battery. In addition, the task having a specific purpose may be a call processing that is responsible for the transmission and reception of the telephone. As such, the embedded system is a system that can be easily found around us. In fact, annually embedded systems are much larger than desktop PCs and are used in various fields. Looking at the field and the typical applications that the embedded system is utilized as follows.

1. 정보가전 - TV, 냉장고, 세탁기등의 가전제품을 인터넷과 연동하는 분야1. Information Appliances-Fields that link home appliances such as TVs, refrigerators and washing machines to the Internet

2. 정보단말 - 개인 휴대형 정보 단말기(PDA: Personal Digital Assistant, 이하 'PDA'라 칭하기로 한다), 영상 전화기등의 이동 통신 단말 분야2. Information terminal-field of mobile communication terminal such as personal digital assistant (PDA), video telephone, etc.

3. 통신장비 - 디지털 교환기, 사설 자동 전화 교환기, 라우터, 스위치등의 통신 장비 분야3. Communication equipment-Field of communication equipment such as digital exchange, private automatic telephone exchange, router, switch, etc.

4. 물류/금융 - 현금 자동 지급기, 바코드(barcode) 관련 장치등의 물류/금융 분야4. Logistics / Finance-Logistics / Finance sector such as ATM, barcode related devices

5. 차량/교통 - 자동차의 엔진 및 각종 제어 시스템, 지능형 교통 시스템(ITS: Intelligent Transport Systems)등의 차량/교통 분야5. Vehicles / Transportation-Vehicles / Transportation Fields such as Engines, Control Systems, Intelligent Transport Systems (ITS), etc.

상기 활용 분야 및 적용예들 외에도 상기 임베디드 시스템은 의료, 게임, 항공/군용 등 생활과 밀접한 관련을 맺는 모든 시스템에 적용되었다고 해도 무방할 것이다.In addition to the applications and applications, the embedded system may be applied to all systems closely related to life such as medical, gaming, aviation / military.

최근들어 상기 임베디드 시스템이 각광받고 있는 이유는 다음과 같은 두가지 이유가 있을 수 있다.Recently, the embedded system has been in the spotlight for two reasons.

첫째, 개인용 컴퓨터(Personal Computer)의 포화와 정보가전(information appliance) 수요의 증가이다. 상기 PDA, 휴대폰, 고화질 TV 등 다양한 정보가전이 출현하면서 이들이 개인용 컴퓨터를 대체해가고 있다. 즉, 임베디드 시스템이 각광받는 이유는 개인용 컴퓨터에는 1개의 마이크로프로세서(microprocessor)가 들어가지만 정보가전 1대에는 수십개의 임베디드 시스템이 목적에 따라 들어갈 수 있어서 그 시장성이 무한하기 때문이다.First, the saturation of personal computers and the demand for information appliances. As various information appliances such as PDAs, mobile phones, and high-definition TVs have emerged, they are replacing personal computers. In other words, the reason why the embedded system is in the spotlight is that a personal computer includes one microprocessor, but one home appliance can have dozens of embedded systems depending on the purpose, and thus the marketability is infinite.

둘째, 새로운 기술의 개발로 인한 시스템의 노후화이다. 기존의 임의의 시스템은 급격한 기술 발달에 맞추어 적시에 제어 프로그램을 제공하는 것이 불가능하다. 따라서 경량화되고 집적화된 저전력의 임베디드 시스템 개발이 불가피해졌다. Second is the aging system due to the development of new technologies. Any existing system is unable to provide a timely control program in line with the rapid technological development. Therefore, it is inevitable to develop a lightweight, integrated low power embedded system.

한편, 상기 임베디드 시스템은 다양한 하드웨어로 구성될 수가 있는데 상기 하드웨어가 시스템에 작업을 수행하겠다고 요청하는 것을 인터럽트(interrupt)라고 한다. 상기 인트럽트가 발생하는 이유는 상기 임베디드 시스템은 제한된 수의 중앙 처리 장치(Central Processing Unit, 이하 'CPU'라 칭하기로 한다)를 포함하고 있으며, 대개 하나의 CPU가 하나의 시스템에 포함되어 있다. 즉, 임의의 하드웨어 장치 A의 작업을 수행하는 CPU가 인터럽트 우선 순위에 의해 더 높은 우선 순위의 다른 하드웨어 장치 B로부터 작업 요청을 수신하면, 먼저 수행되고 있던 하드웨어 장치 A의 작업을 일시 중지하고 후에 작업 요청을 한 B의 작업을 처리한다. 상기 B의 처리 작업을 마친 CPU는 메모리에 저장된 A의 작업정보를 로딩하여 일시 중지된 시점부터 연속적으로 A의 작업을 재개한다. 이렇듯 CPU는 하나의 하드웨어 장치에 대해 하나씩의 작업만 수행하지만 처리 시간이 너무 짧아 사용자는 상기 하드웨어 장치 A와 B가 동시에 처리되는 것으로 느껴진다.On the other hand, the embedded system may be composed of a variety of hardware, which is called an interrupt (interrupt) to request that the hardware to perform a task. The cause of the interruption is that the embedded system includes a limited number of Central Processing Units (hereinafter referred to as CPUs), and usually one CPU is included in one system. In other words, when a CPU performing a task of any hardware device A receives a task request from another hardware device B of higher priority by interrupt priority, the task of the hardware device A which was being performed is paused first, Process the job of B that made the request. The CPU, which has completed the processing of B, loads the job information of A stored in the memory and resumes the work of A continuously from the time when it is suspended. As such, the CPU performs only one task for one hardware device, but the processing time is so short that the user feels that the hardware devices A and B are processed simultaneously.

상기 인터럽트를 처리하는 CPU는 메인 메모리에 프로그래밍(programming)적으로 구현된 인터럽트 서비스 루틴(Interrupt Service Routine, 이하 'ISR'이라 칭하기로 한다)이라는 함수와 각각의 하드웨어 장치에서 발생하는 인터럽트 신호를 맵핑(mapping)시켜 처리한다. 일 예로, 키보드의 임의의 키로부터의 입력 신호를 수신한 CPU는 메인 메모리(main memory)에 저장된 해당 ISR을 호출하여 상기 키보드 입력에 대한 인터럽트를 처리한다. 이하 도 1을 참조하여 상기 인터럽트 요청 신호를 수신한 CPU와 메인 메모리의 ISR간의 관계를 설명하기로 한다.The CPU for handling the interrupt maps an interrupt service routine (hereinafter, referred to as an 'ISR') that is implemented programmatically to main memory and an interrupt signal generated from each hardware device. mapping) to process. For example, the CPU, which receives an input signal from any key of the keyboard, calls the corresponding ISR stored in the main memory to handle the interrupt for the keyboard input. Hereinafter, a relationship between a CPU receiving the interrupt request signal and an ISR of the main memory will be described with reference to FIG. 1.

도 1은 일반적인 인터럽트를 처리하기 위한 CPU와 메인 메모리간의 수행 흐름을 개략적으로 도시한 도면이다. 1 is a diagram schematically illustrating a flow of execution between a CPU and a main memory for processing a general interrupt.

상기 도 1을 참조하면, 먼저 임의의 하드웨어 장치로부터 인터럽트 요청(102) 신호를 수신한 CPU(100)는 기 수행되고 있던 임의의 작업을 CPU내의 임시 메모리(도시하지 않음)에 그에 관한 정보를 저장하고 수신한 인터럽트 요청 신호를 판독한다. 일 예로, 상기 인터럽트 요청 신호(102)는 키보드의 키 입력으로 발생한 것으로 가정하며 상기 임시 메모리는 캐시(cache) 메모리 및 레지스터(register)가 될 수 있다. 상기 캐시 메모리는 기억장치 계층에 있어 CPU의 처리 속도를 개선하는 역할을 한다. 또한 상기 캐시는 주기억 장치중의 데이터가 CPU에 의해 한번 사용된 후, 다시 사용될 것을 예상해서 그 사본을 캐쉬 메모리에 남겨 두는 작업을 한다. 상기 키보드의 인터럽트 요청 신호를 감지한 CPU(100)는 메모리 버스(memory bus)(104)라는 CPU(100)와 메인 메모리(150)간의 통로를 통해 메인 메모리(150)에 구현된 ISR0(106)를 호출한다. 여기서 상기 ISR0(106)는 키보드 인터럽트 신호에 대한 일련의 처리 과정을 프로그래밍적으로 구현한 함수이다. 상기 ISR0(106) 내지 ISRn(112)은 배열 구조로 구현된 인터럽트 벡터 테이블(interrupt vector table)이라고 하며 각 인터럽트 요청 신호에 대한 처리를 프로그래밍 함수로 구현하고 있다. 상기 ISR0를 참조하여 CPU는 상기 인터럽트 요청 신호에 관해 일련의 작업을 수행하고 처리를 완료하면 상기 임시 메모리에 기저장된 이전의 작업을 로딩(loading)하여 일시 중지된 시점부터 연속적으로 작업을 재개한다.Referring to FIG. 1, the CPU 100 first receiving an interrupt request 102 signal from an arbitrary hardware device stores information about a task that has been previously performed in a temporary memory (not shown) in the CPU. The received interrupt request signal is read. For example, it is assumed that the interrupt request signal 102 is generated by a key input of a keyboard, and the temporary memory may be a cache memory and a register. The cache memory serves to improve the processing speed of the CPU in the storage hierarchy. The cache also works by leaving the copy in cache memory in anticipation that data in the main memory will be used once by the CPU and then used again. The CPU 100, which senses the interrupt request signal of the keyboard, implements the ISR0 106 implemented in the main memory 150 through a path between the CPU 100 and the main memory 150 called a memory bus 104. Call The ISR0 106 is a function that programmatically implements a series of processing for the keyboard interrupt signal. The ISR0 106 to ISRn 112 are referred to as an interrupt vector table implemented in an array structure and implement processing for each interrupt request signal as a programming function. With reference to the ISR0, the CPU performs a series of tasks on the interrupt request signal, and when the processing is completed, loads a previous task previously stored in the temporary memory and resumes the task continuously from the time when it is suspended.

그러면 상기 임베디스 시스템의 하드웨어 장치들과 일반적인 개인용 컴퓨터(PC)의 하드웨어 장치들의 차이점을 하기 <표 1>을 참조하여 설명한다.Then, the difference between the hardware devices of the embedded system and the hardware devices of a general personal computer (PC) will be described with reference to Table 1 below.

상기에서와 같이, 임베디드 시스템은 기능의 복잡도(complexity) 및 시스템의 크기도 다양하게 존재한다. 일 예로, 임베디드 시스템이 내장된 냉장고와 PDA를 들 수가 있다. 상기 PDA는 휴대를 목적으로하는 시스템을 구현하기 위해서 최고의 성능을 가지면서도 최소한의 하드웨어 장치를 사용해야 된다. 즉, 상기 <표 1>을 참조하면, 상기 임베디드 시스템은 다양한 하드웨어 장치를 거의 사용하지 않으며 메모리의 경우도 최소한의 메모리를 필요로하고 있다.As above, embedded systems also vary in the complexity of the functionality and the size of the system. Examples include refrigerators and PDAs with embedded systems. The PDA has to use a minimum hardware device with the highest performance in order to implement a portable system. That is, referring to Table 1, the embedded system rarely uses various hardware devices and requires a minimum amount of memory.

이렇게 제한된 메모리 용량을 사용하는 임베디드 시스템은 상기 인터럽트 발생시 상기 인터럽트를 처리하기 위해 상기 메모리에 일련의 처리 과정을 수행할 ISR을 저장한다. 만약 상기 임베디드 시스템이 다수의 인터럽트가 발생하는 하드웨어 장치로 구성되어 있다면 상기 인터럽트를 처리하는 메모리의 일정 영역도 함께 증대되어야 한다. 하지만, 상기 메모리는 인터럽트만을 처리하는 것이 아니고 응용 프로그램도 구동하며 각종 데이터를 저장하는 역할을 수행해야 한다. 즉, 상기 임베디드 시스템은 제한된 메모리 자원을 효과적으로 사용할 필요성이 있다.Embedded systems using this limited memory capacity store an ISR to perform a series of processing in the memory to handle the interrupt when the interrupt occurs. If the embedded system is configured with a hardware device that generates a plurality of interrupts, a certain area of the memory for processing the interrupts must also be increased. However, the memory should not only handle interrupts but also drive applications and store various data. In other words, the embedded system needs to effectively use limited memory resources.

종래의 인터럽트 처리 과정을 저장한 메모리는 일정 영역을 배열 구조로 할당한다. 상기 배열 구조는 프로그래밍 언어, 일 예, C 언어로 메모리 물리 주소(physical address)의 임의의 시작점부터 종료점까지 동일한 데이터형을 가진 요소들을 하나의 이름으로 연속된 기억 공간속에 저장할 수 있는 데이터 구조로 인터럽트 처리를 위해 모두 초기화한다. 상기와 같은 경우, 임의의 하드웨어 장치가 인터럽트 신호를 두개만 발생시킨다고 가정할때 그외 발생되지 않는 인터럽트 신호에 대한 메모리 영역도 초기화된다. 이렇게 되면 상기 메모리는 사용하지 않아도 될 영역까지도 상기 발생하지 않는 인터럽트 신호 처리를 위해서 할당되어야 하므로 메모리의 낭비를 초래한다. 또한, 새로운 하드웨어 장치가 상기 임베디드 시스템에 추가되는 경우에는 상기 인터럽트 벡터 테이블의 ISR 개수를 다시 정의해야 되는 비효율적인 측면이 존재한다. A memory storing a conventional interrupt process allocates a predetermined area in an array structure. The array structure is a data language that can store elements having the same data type in a contiguous storage space under a single name from an arbitrary starting point to an ending point of a memory physical address in a programming language, for example, C language. Initialize all for processing. In such a case, assuming that a hardware device generates only two interrupt signals, the memory area for other interrupt signals that are not generated is also initialized. This causes a waste of memory since the memory must be allocated for the non-occurring interrupt signal processing even in an area that is not required to be used. In addition, when a new hardware device is added to the embedded system, there is an inefficient aspect of redefining the number of ISRs of the interrupt vector table.

따라서 본 발명의 목적은 임베디드 시스템에서 제한된 메모리 자원을 효과적으로 사용할 수 있도록 동적으로 메모리를 구현하기 위한 장치 및 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide an apparatus and method for dynamically implementing a memory to effectively use limited memory resources in an embedded system.

본 발명의 다른 목적은 동적으로 할당된 메모리를 이용하여 보다 효율적으로 인터럽트를 처리하기 위한 장치 및 방법을 제공함에 있다.It is another object of the present invention to provide an apparatus and method for handling interrupts more efficiently using dynamically allocated memory.

상기 목적을 달성하기 위한 본 발명의 방법은; 임베디드 시스템에서 인터럽트를 처리하기 위한 방법에 있어서, 발생 가능한 모든 인터럽트 신호 중 필요한 일부 또는 전부의 인터럽트 신호를 선택하는 과정과, 메모리를 동적으로 할당하는 과정과, 상기 선택한 신호를 상기 동적으로 할당된 메모리에 기록하는 과정과, 상기 메모리에 기록된 각각의 인터럽트 신호와 그에 상응하는 인터럽트 서비스 루틴(ISR) 함수를 일대일 맵핑하는 과정을 포함함을 특징으로 한다.The method of the present invention for achieving the above object; CLAIMS What is claimed is: 1. A method for handling interrupts in an embedded system, the method comprising: selecting some or all of the required interrupt signals among all possible interrupt signals, dynamically allocating memory, and dynamically assigning the selected signals to the dynamically allocated memory. And a one-to-one mapping of each interrupt signal recorded in the memory and a corresponding interrupt service routine (ISR) function.

상기 목적을 달성하기 위한 본 발명의 장치는; 임베디드 시스템에서 인터럽트를 처리하기 위한 장치에 있어서, 인터럽트 신호가 동적으로 할당된 주소 영역에 저장되는 메모리와, 상기 메모리에 동적으로 할당된 인터럽트를 처리하는 CPU를 포함함을 특징으로 한다. The apparatus of the present invention for achieving the above object; An apparatus for processing an interrupt in an embedded system, the apparatus comprising a memory for storing an interrupt signal in a dynamically allocated address area and a CPU for processing an interrupt dynamically allocated to the memory.

이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that in the following description, only parts necessary for understanding the operation according to the present invention will be described, and descriptions of other parts will be omitted so as not to distract from the gist of the present invention.

설명에 앞서,본 발명은 임베디드 시스템(embedded system)이 필요한 인터럽트(interrrupt) 신호만을 처리하기 위해서 동적(dynamic)으로 메모리 구조를 초기화하여 제한된 메모리 자원을 보다 효율적으로 활용하는 장치 및 방법을 제안한다. 또한, 상기와 같이 동적으로 메모리를 구현하면 새로운 하드웨어 추가시에 보다 효과적으로 인터럽트 서비스 루틴(Interrupt Service Routine, 이하 'ISR'이라 칭하기로 한다)을 수행하는 장치 및 방법을 제안한다.Prior to the description, the present invention proposes an apparatus and method for more efficiently utilizing limited memory resources by dynamically initializing a memory structure in order to process only an interrupt signal required by an embedded system. In addition, when the memory is dynamically implemented as described above, an apparatus and method for more effectively performing an interrupt service routine (hereinafter, referred to as an 'ISR') when adding new hardware are proposed.

한편, 후술될 연결 리스트(linked list)는 필요할 때마다 메모리를 할당해서 데이터를 추가해주면 되기 때문에 배열보다 효율적으로 메모리를 관리 할 수 있을 뿐만 아니라 메모리가 다하지 않는 한 무한정으로 데이터를 저장할 수 있다는 장점이 있다.On the other hand, the linked list, which will be described later, allocates memory whenever necessary and adds data, so that the memory can be managed more efficiently than the array, and the data can be stored indefinitely unless the memory is full. have.

도 2는 본 발명의 실시예에 따른 인터럽트를 처리하기 위한 장치 구성을 도시한 블록도이다.2 is a block diagram showing an apparatus configuration for processing an interrupt according to an embodiment of the present invention.

먼저, 인터럽트 신호 정의부(202)는 상기 임베디드 시스템의 임의의 하드웨어 장치에서 발생되는 모든 인터럽트 신호를 감지하여 상기 임베디드 시스템에서 필요로 하는 인터럽트 신호만을 추출하여 선택한다. 여기서 상기 인터럽트 신호 정의부(202)에 지시된 select factor는 상기 필요로 하는 인터럽트 신호 추출을 의미한다. 예컨대, 임의의 하드웨어 장치 A가 모두 7개의 인터럽트 신호를 발생시킨다고 가정하자. 상기 하드웨어 장치 A가 러시아에서 사용될 경우에는 상기 7개의 인터럽트 신호중 첫번째와 두번째 인터럽트 신호만이 필요하고 중국에서는 세번째와 네번째의 인터럽트 신호만이 필요하다고 가정할때, 상기 러시아에서는 상기 첫번째, 두번째 인터럽트 신호만을 추출하여 선택하고 중국에서는 상기 세번째, 네번째 인터럽트 신호만을 추출하여 선택하는 것이다. 즉, 동일한 하드웨어 장치 A가 어느곳에서 어떻게 쓰이느냐에 따라서 발생되는 인터럽트 종류 및 개수가 다를 수가 있다. 이러한 경우 상기 시스템은 필요한 인터럽트 신호만을 입력하고 상기 인터럽트를 처리하는 ISR만 저장하면 된다.First, the interrupt signal defining unit 202 detects all interrupt signals generated by any hardware device of the embedded system and extracts and selects only the interrupt signal required by the embedded system. Herein, the select factor indicated by the interrupt signal defining unit 202 means extracting the required interrupt signal. For example, assume that any hardware device A all generates seven interrupt signals. When the hardware device A is used in Russia, assuming that only the first and second interrupt signals of the seven interrupt signals are needed, and only the third and fourth interrupt signals are required in China, only the first and second interrupt signals are used in Russia. In this case, the third and fourth interrupt signals are extracted and selected in China. That is, the type and number of interrupts generated may vary depending on where and how the same hardware device A is used. In this case, the system only needs to input the required interrupt signal and store only the ISR for processing the interrupt.

다음으로 인터럽트 번호 스캔부(204)는 상기 인터럽트 신호 정의부(202)가 선택한 일부 또는 전부의 인터럽트 신호를 감지한다. 상기 인터럽트 번호 스캔부(204)는 중앙 처리 장치(Central Processing Unit, 이하 'CPU'라 칭하기로 한다)내에 포함되어 있다. 따라서, 이후 상기 인터럽트 신호가 정의된 하드웨어 장치가 상기 임베디드 시스템에 장착될 시에 상기 CPU는 메모리 초기화부(208)를 제어하여 상기 메모리의 일정 영역에 머리(head, 이하 '헤드'라 칭하기로 한다)와 꼬리(tail, 이하 '테일'로 칭하기로 한다)만을 가지는 연결 리스트(linked list) 구조로 인터럽트 벡터 테이블(interrupt vector table)을 초기화한다. 상기 인터럽트 벡터 테이블은 임의의 인터럽트 발생시 해당 인터럽트를 수행하기 위한 ISR 번호가 저장되는 구조라고 할 수 있다.Next, the interrupt number scan unit 204 detects some or all interrupt signals selected by the interrupt signal definition unit 202. The interrupt number scanning unit 204 is included in a central processing unit (hereinafter referred to as a CPU). Therefore, when the hardware device in which the interrupt signal is defined is mounted in the embedded system, the CPU controls the memory initialization unit 208 to be referred to as a 'head' in a predetermined area of the memory. ) And the interrupt vector table is initialized with a linked list structure having only a tail and a tail (hereinafter, referred to as a 'tail'). The interrupt vector table may be referred to as a structure in which an ISR number for performing a corresponding interrupt is stored when an interrupt occurs.

이렇게 초기화된 인터럽트 벡터 테이블, 즉 헤드와 테일간의 동적 메모리 공간에 인터럽트 번호 입력부(206)는 상기 필요한 인터럽트 번호를 입력한다. 즉, 상기 입력의 경우, 헤드와 테일간에 메모리 영역을 할당하여 상기 인터럽트 번호를 입력한다. 이후 함수 초기화부(210)는 상기 동적 메모리안의 상기 입력된 번호에 대해서만 함수 초기화를 수행하고 필요하지 인터럽트 번호에 해당하는 함수는 초기화하지 않는다. 다음으로 ISR 할당부(212)는 상기 동적 메모리안의 인터럽트 번호 입력에 대해서 각 입력된 번호별로 해당 ISR을 맵핑(mapping)한다. 일 예로, 상기 인터럽트 번호 입력부(206)가 키보드 인터럽트 발생을 인터럽트 번호 1로 입력하면 상기 인터럽트 처리를 위해 ISR0로 맵핑시킬 수가 있다. The interrupt number input unit 206 inputs the necessary interrupt number in the initialized interrupt vector table, that is, the dynamic memory space of the head and tail. That is, in the case of the input, the interrupt number is input by allocating a memory area to the head and the tail. Thereafter, the function initialization unit 210 performs function initialization only for the input number in the dynamic memory and does not initialize the function corresponding to the interrupt number. Next, the ISR allocator 212 maps the corresponding ISR to each input number for the interrupt number input in the dynamic memory. For example, when the interrupt number input unit 206 inputs the keyboard interrupt occurrence as interrupt number 1, the interrupt number input unit 206 may map to ISR0 for the interrupt processing.

다음으로 ISR 수행부(214)는 임의의 하드웨어 장치에서 인터럽트 신호가 발생하면 인터럽트 번호 스캔부(204)에서 감지한 번호가 있는지를 확인후에 상기 해당 인터럽트 신호가 동적 메모리에 저장되어 있을 경우 해당 ISR로 분기(jump)하여 ISR을 수행한다. 상기 도 2에서 AND 연산기(216)는 입력된 인터럽트 번호와 상기 CPU가 수행할 ISR을 AND 연산함으로써 상기 시스템에 허용된 인터럽트 신호를 처리하도록 한다. 예컨대, 상기 ISR 수행부(214)는 인터럽트 신호 1, 3, 6 중에 하나가 발생할 수 있는 상황이 AND 연산기(216)의 PEND 노드(node)에 입력되고 시스템에서 처리하도록 설정된 인터럽트 신호 1, 6이 MASK 노드로 입력되면 상기 인터럽트 신호 1, 6이 발생할 경우에만 시스템이 인터럽트 처리를 수행하고 인터럽트 신호 3이 발생할 경우 에러(error) 처리를 한다.Next, if an interrupt signal is generated from any hardware device, the ISR execution unit 214 checks whether there is a number detected by the interrupt number scan unit 204, and if the corresponding interrupt signal is stored in the dynamic memory, the ISR is performed. Branches to perform ISR. In FIG. 2, the AND operator 216 processes the interrupt signal allowed to the system by ANDing the input interrupt number and the ISR to be performed by the CPU. For example, the ISR execution unit 214 inputs a situation in which one of the interrupt signals 1, 3, and 6 may occur to the PEND node of the AND operator 216, and interrupt signals 1 and 6 configured to be processed by the system. When input to the MASK node, the system performs interrupt processing only when the interrupt signals 1 and 6 occur, and performs error processing when the interrupt signal 3 occurs.

이하, 도시될 도면들을 참조하여 상기 도 2의 각 블록 구성을 상세하게 설명하기로 한다.Hereinafter, each block configuration of FIG. 2 will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 실시예에 따른 인터럽트 신호 정의부(202 또는 304)에서 인터럽트 신호를 선택하는 것을 도시한 도면이다.3 is a diagram illustrating selecting an interrupt signal from an interrupt signal defining unit 202 or 304 according to an embodiment of the present invention.

먼저, 임의의 하드웨어(302)가 발생하는 인터럽트 신호가 총 7개이다. 상기 7개의 신호 중 인터럽트 1, 2, 5, 7만을 사용한다고 가정하면 인터럽트 신호 정의부(304)는 상기 총 7개의 인터럽트 신호 중 상기 1, 2, 5, 7의 인터럽트 신호만을 하드웨어로부터 추출하여 선택한다. 이후 상기 선택된 인터럽트 신호들은 CPU(306)의 인터럽트 번호 스캔부(204)가 감지하여 인터럽트 번호 입력부(206)로 전송한다. 이후에 상기 선택된 인터럽트 신호가 발생시에 동적 메모리의 인터럽트 벡터 테이블의 해당 ISR로 분기하여 인터럽트를 처리한다.First, there are a total of seven interrupt signals generated by any hardware 302. Assuming that only interrupts 1, 2, 5, and 7 of the 7 signals are used, the interrupt signal defining unit 304 extracts and selects only the interrupt signals of 1, 2, 5, and 7 from the hardware from the total 7 interrupt signals. do. Thereafter, the selected interrupt signals are detected by the interrupt number scan unit 204 of the CPU 306 and transmitted to the interrupt number input unit 206. Thereafter, when the selected interrupt signal is generated, it branches to the corresponding ISR of the interrupt vector table of the dynamic memory to process the interrupt.

다음으로, 도 4는 메모리 초기화부(208)가 연결 리스트(linked list) 구조로 메모리를 초기화한 형태를 도시한 도면이다. Next, FIG. 4 is a diagram illustrating a form in which the memory initialization unit 208 initializes the memory in a linked list structure.

도 4는 본 발명의 실시예에 따른 헤드와 테일 구조로만 초기화된 동적 메모리 구조를 도시한 도면이다.4 is a diagram illustrating a dynamic memory structure initialized only with a head and tail structure according to an embodiment of the present invention.

상기 도 4를 참조하면, 상기 동적 메모리 구조는 프로그래밍적으로, 일 예, C 언어 혹은 C++ 언어의 자기 참조 구조체 및 연결 리스트 구조를 사용하여 헤드(402)와 테일(404)만으로 초기화된다. 이하 상기 동적 메모리 구조가 상기 C 언어로 정의되는 일 예의 경우이다.Referring to FIG. 4, the dynamic memory structure is programmatically initialized with only the head 402 and tail 404 using self-referencing structures and linked list structures in, for example, C or C ++ languages. Hereinafter, the dynamic memory structure is an example case where the C language is defined.

typedef struct_table{typedef struct_table {

unsigned int vector_number;       unsigned int vector_number;

struct_table *next;       struct_table * next;

}table;} table;

table *head_table, *tail_table;table * head_table, * tail_table;

상기 자기 참조 구조체 및 연결 리스트(linked list)를 이용한 프로그래밍 예제를 참조하면, *head_table 은 동적 메모리의 시작을 알리는 것이며 *tail_table은 동적 메모리의 종료를 알리는 것이다. Referring to the programming example using the self-reference structure and linked list, * head_table indicates the start of dynamic memory and * tail_table indicates the end of dynamic memory.

다음으로, 도 5를 참조하여 상기 동적 메모리가 헤드와 테일로 초기화 된 후 인터럽트 신호 번호를 입력하여 상기 헤드와 테일 사이에 데이터를 저장하는 영역인 노드들이 삽입된 형태를 설명하기로 한다.Next, referring to FIG. 5, after the dynamic memory is initialized to the head and the tail, nodes, which are regions for storing data between the head and the tail by inputting an interrupt signal number, will be described.

도 5는 본 발명의 실시예에 따른 인터럽트 번호가 입력된 동적 메모리 구조를 도시한 도면이다.5 is a diagram illustrating a dynamic memory structure in which an interrupt number is input according to an embodiment of the present invention.

상기 도 5를 참조하면, 상기 동적 메모리는 헤드(502)와 테일(512) 사이에 상기 선택된 인터럽트 신호 1(504), 2(506), 5(508), 7(510)의 주소 영역이 상기 인터럽트 번호 입력부(206)에 의해 삽입된 구조이다. 상기 노드는 데이터가 저장되는 공간을 의미하며 상기 도 5의 504, 506, 508, 510을 노드(node)라고 한다. 이하 상기 인터럽트 번호가 입력된 동적 메모리 구조가 상기 C 언어로 정의되는 경우 사용되는 함수의 일 예이다.Referring to FIG. 5, the dynamic memory includes an address region of the selected interrupt signals 1 504, 2 506, 5 508, and 7 510 between the head 502 and the tail 512. The structure is inserted by the interrupt number input unit 206. The node means a space in which data is stored, and 504, 506, 508, and 510 of FIG. 5 are called nodes. Hereinafter, an example of a function used when the dynamic memory structure in which the interrupt number is input is defined in the C language.

insert_table(unsigned int vector_number);insert_table (unsigned int vector_number);

상기 프로그램 구문은 정수값의 인자 vector_number를 받아서 자기 참조 구조체의 vector number에 저장하고 인터럽트 벡터 테이블의 리스트(list)가 된다. 따라서, 상기 insert_table 함수를 사용하여 상기 인터럽트 신호 1, 2, 5, 7을 상기 헤드(502)와 테일(512) 사이의 주소 영역을 차지하도록 하는 프로그램 구현은 다음과 같은 구문이 포함될 수 있으며 하기 표현되는 함수는 프로그램 작성자에 의해 자유로이 정의될 수 있다.The program syntax takes an integer vector_number argument and stores it in the vector number of the self-reference structure and becomes a list of interrupt vector tables. Therefore, a program implementation that uses the insert_table function to occupy the address region between the head 502 and the tail 512 by using the interrupt signals 1, 2, 5, and 7 may include the following syntax. The function to be defined can be freely defined by the program writer.

insert_table(1);insert_table (1);

insert_table(2);insert_table (2);

insert_table(5);insert_table (5);

insert_table(7);insert_table (7);

다음으로, 도 6을 참조하여 상기 헤드와 인터럽트 번호 노드와 테일로 이루어진 동적 메모리가 초기화 함수로 맵핑되는 도면을 설명하기로 한다.Next, a diagram in which a dynamic memory including the head, the interrupt number node, and the tail is mapped to an initialization function will be described with reference to FIG. 6.

도 6은 본 발명의 실시예에 따른 각 노드들이 초기화 함수로 맵핑되는 동적 메모리 구조를 도시한 도면이다. 6 is a diagram illustrating a dynamic memory structure in which each node is mapped to an initialization function according to an embodiment of the present invention.

상기 도 6을 참조하면, 상기 인터럽트 신호 입력을 종료한 상기 동적 메모리의 함수 초기화부(210)는 각 노드들에 대해 초기화 함수와 맵핑한다. 상기 초기화 함수라 함은 프로그래머(programmer)에 의해 자유로이 정의되는 함수이며 시스템 설계시 디펄트(default)로 정의된 함수이다. 예컨대, 상기 CPU가 이미지 로딩을 요청하는 인터럽트 신호 감지시 시스템 설계시 미리 정의된 초기화 함수를 로딩하는 것으로 일 예로, 상기 각 노드들에는 널(null)값으로 초기화 될 수가 있다. 상기 각 노드들은 모두 동일한 초기화 함수와 맵핑된다. Referring to FIG. 6, the function initialization unit 210 of the dynamic memory that terminates the interrupt signal input maps to an initialization function for each node. The initialization function is a function defined freely by a programmer and a function defined as a default when designing a system. For example, when the CPU detects an interrupt signal requesting image loading, the CPU loads an initialization function that is predefined in system design. For example, each of the nodes may be initialized to a null value. Each of these nodes is mapped to the same initialization function.

도 7은 본 발명의 실시예에 따른 각 노드들이 해당 ISR로 맵핑되는 동적 메모리 구조를 도시한 도면이다.FIG. 7 illustrates a dynamic memory structure in which nodes are mapped to corresponding ISRs according to an embodiment of the present invention.

상기 도 7을 참조하면, 상기 초기화 함수로의 맵핑이 종료되면 ISR 할당부(212)는 각 노드들을 해당 ISR별로 맵핑한다. 즉, 상기 ISR 할당부(212)는 인터럽트 신호 1(704)을 해당 인터럽트 벡터 테이블과 맵핑된 ISR0로, 인터럽트 신호 2(706)는 해당 인터럽트 벡터 테이블과 맵핑된 ISR1으로, 인터럽트 신호 5(708)는 해당 인터럽트 벡터 테이블과 맵핑된 ISR2로, 인터럽트 신호 7(710)은 해당 인터럽트 벡터 테이블과 맵핑된 ISR3으로 각각 맵핑한다. 이렇게 맵핑된 각각의 인터럽트 신호들을 ISR 수행부(214)는 임의의 인터럽트 신호가 발생시에 상기 인터럽트 번호 스캔부(204)에서 감지한 신호들과 맵핑되는지를 판단한 후에 맵핑되는 것이 확인되면 해당 ISR의 인터럽트 벡터 테이블로 분기하여 상기 ISR을 수행한다.Referring to FIG. 7, when the mapping to the initialization function is completed, the ISR allocator 212 maps each node by the corresponding ISR. That is, the ISR allocator 212 assigns the interrupt signal 1 704 to ISR0 mapped to the corresponding interrupt vector table, the interrupt signal 2 706 to ISR1 mapped to the corresponding interrupt vector table, and the interrupt signal 5 708. Is ISR2 mapped with the corresponding interrupt vector table, and interrupt signal 7 710 maps to ISR3 mapped with the corresponding interrupt vector table, respectively. Each of the mapped interrupt signals is determined by the ISR performing unit 214 when the random interrupt signal is mapped with the signals detected by the interrupt number scanning unit 204 when it is generated. The ISR is performed by branching to a vector table.

한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다. Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the scope of the following claims, but also by the equivalents of the claims.

상술한 바와 같이 본 발명은 임베디드 시스템에서 연결 리스트를 사용하여 동적 할당 메모리를 구현함으로써 정의되는 인터럽트 신호에 대해서만 메모리를 할당하여 보다 효율적으로 제한된 메모리를 사용할 수 있는 장점이 있다. As described above, the present invention has an advantage in that a limited memory can be used more efficiently by allocating memory only for an interrupt signal defined by implementing a dynamic allocation memory using a connection list in an embedded system.

도 1은 일반적인 인터럽트를 처리하기 위한 CPU와 메인 메모리간의 수행 흐름을 개략적으로 도시한 도면1 is a diagram schematically illustrating a flow of execution between a CPU and a main memory for processing a general interrupt;

도 2는 본 발명의 실시예에 따른 인터럽트를 처리하기 위한 장치 구성을 도시한 블록도2 is a block diagram showing an apparatus configuration for processing an interrupt according to an embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 인터럽트 신호 정의부(202 또는 304)에서 인터럽트 신호를 선택하는 것을 도시한 도면3 is a diagram illustrating selecting an interrupt signal from an interrupt signal defining unit 202 or 304 according to an embodiment of the present invention.

도 4는 본 발명의 실시예에 따른 헤드와 테일 구조로만 초기화된 동적 메모리 구조를 도시한 도면4 illustrates a dynamic memory structure initialized only with a head and tail structure according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 인터럽트 번호가 입력된 동적 메모리 구조를 도시한 도면5 is a diagram illustrating a dynamic memory structure in which an interrupt number is input according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 각 노드들이 초기화 함수로 맵핑되는 동적 메모리 구조를 도시한 도면6 illustrates a dynamic memory structure in which each node is mapped to an initialization function according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 각 노드들이 해당 ISR로 맵핑되는 동적 메모리 구조를 도시한 도면 FIG. 7 illustrates a dynamic memory structure in which nodes are mapped to corresponding ISRs according to an embodiment of the present invention. FIG.

Claims (9)

임베디드 시스템에서 인터럽트를 처리하기 위한 방법에 있어서,In a method for handling interrupts in an embedded system, 발생 가능한 모든 인터럽트 신호 중 필요한 일부 또는 전부의 인터럽트 신호를 선택하는 과정과,Selecting some or all of the required interrupt signals among all possible interrupt signals; 메모리를 동적으로 할당하는 과정과,The process of dynamically allocating memory, 상기 선택한 신호를 상기 동적으로 할당된 메모리에 기록하는 과정과,Writing the selected signal to the dynamically allocated memory; 상기 메모리에 기록된 각각의 인터럽트 신호와 그에 상응하는 인터럽트 서비스 루틴(ISR) 함수를 일대일 맵핑하는 과정을 포함함을 특징으로 하는 상기 방법. And one-to-one mapping of each interrupt signal written to the memory and a corresponding interrupt service routine (ISR) function. 제 1항에 있어서, 상기 메모리를 동적으로 할당하는 과정은;The method of claim 1, wherein dynamically allocating the memory comprises: 헤드와 테일 주소 영역으로 메모리를 초기화하는 과정과,Initializing the memory with the head and tail address areas, 상기 선택된 인터럽트 신호에 상응하게 새로운 데이터 저장 주소 영역을 상기 헤드와 테일 사이의 주소 영역에 할당하는 과정을 포함함을 특징으로 하는 상기 방법. Allocating a new data storage address area to an address area between the head and tail corresponding to the selected interrupt signal. 제 2항에 있어서,The method of claim 2, 상기 각각의 데이터 저장 주소 영역은 다음 데이터 주소 영역을 참조함을 특징으로 하는 상기 방법. Wherein each data storage address area refers to a next data address area. 제 1항에 있어서,The method of claim 1, 소정의 인터럽트 신호 발생시 상기 발생된 인터럽트 신호가 상기 선택된 인터럽트 신호인지를 판단하는 과정을 더 포함함을 특징으로 하는 상기 방법. And determining whether the generated interrupt signal is the selected interrupt signal when a predetermined interrupt signal is generated. 임베디드 시스템에서 인터럽트를 처리하기 위한 장치에 있어서,An apparatus for handling interrupts in an embedded system, 인터럽트 신호가 동적으로 할당된 주소 영역에 저장되는 메모리와,Memory in which interrupt signals are stored in dynamically allocated address areas; 상기 메모리에 동적으로 할당된 인터럽트를 처리하는 CPU를 포함함을 특징으로 하는 상기 장치. And a CPU for handling an interrupt dynamically allocated to the memory. 제 5항에 있어서, The method of claim 5, 상기 메모리는 헤드와 테일 주소 영역으로 초기화하고, 발생 가능한 모든 인터럽트 신호들 중 선택된 하나 이상의 인터럽트 신호에 상응한 데이터 저장 주소 영역을 상기 헤드와 테일 사이의 주소 영역에 할당함을 특징으로 하는 상기 장치. And the memory initializes the head and tail address areas and allocates a data storage address area corresponding to one or more selected interrupt signals among all possible interrupt signals to an address area between the head and tail. 제 6항에 있어서,The method of claim 6, 상기 각각의 데이터 저장 주소 영역은 다음 데이터 주소 영역을 참조함을 특징으로 하는 상기 장치. Wherein each data storage address area refers to a next data address area. 제 5항에 있어서,The method of claim 5, 상기 CPU는 상기 메모리에 저장된 각각의 인터럽트 신호와 그에 상응하는 인터럽트 서비스 루틴(ISR)을 일대일 맵핑하여 상기 인터럽트 신호 발생시 상기 일대일 맵핑된 해당 인터럽트 서비스 루틴(ISR)을 수행하도록 제어함을 특징으로 하는 상기 장치. The CPU controls one-to-one mapping between each interrupt signal stored in the memory and an interrupt service routine (ISR) corresponding thereto to perform the one-to-one mapped corresponding interrupt service routine (ISR) when the interrupt signal is generated. Device. 제 5항에 있어서,The method of claim 5, 상기 CPU는 임의의 인터럽트 신호 발생시 상기 발생된 인터럽트 신호가 시스템에서 허용한 인터럽트 신호인지를 판단함을 특징으로 하는 상기 장치. And the CPU determines whether the generated interrupt signal is an interrupt signal allowed by the system when any interrupt signal is generated.
KR1020030078135A 2003-11-05 2003-11-05 Apparatus and method for handling interrupt using dynamic allocation memory in embedded system KR20050043299A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030078135A KR20050043299A (en) 2003-11-05 2003-11-05 Apparatus and method for handling interrupt using dynamic allocation memory in embedded system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030078135A KR20050043299A (en) 2003-11-05 2003-11-05 Apparatus and method for handling interrupt using dynamic allocation memory in embedded system

Publications (1)

Publication Number Publication Date
KR20050043299A true KR20050043299A (en) 2005-05-11

Family

ID=37244053

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030078135A KR20050043299A (en) 2003-11-05 2003-11-05 Apparatus and method for handling interrupt using dynamic allocation memory in embedded system

Country Status (1)

Country Link
KR (1) KR20050043299A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101341414B1 (en) * 2009-12-18 2013-12-13 한국전자통신연구원 Interrupt handling mode decision method of embedded operating system kernel
KR20200064702A (en) 2018-11-29 2020-06-08 한국전자통신연구원 Method for randomzing address space layout of embedded system based on hardware and apparatus using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101341414B1 (en) * 2009-12-18 2013-12-13 한국전자통신연구원 Interrupt handling mode decision method of embedded operating system kernel
KR20200064702A (en) 2018-11-29 2020-06-08 한국전자통신연구원 Method for randomzing address space layout of embedded system based on hardware and apparatus using the same

Similar Documents

Publication Publication Date Title
US6948034B2 (en) Method for use of stack
US7877091B2 (en) Method and system for executing a container managed application on a processing device
US10489204B2 (en) Flexible in-order and out-of-order resource allocation
US9043806B2 (en) Information processing device and task switching method
CN108021449B (en) Coroutine implementation method, terminal equipment and storage medium
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US11347563B2 (en) Computing system and method for operating computing system
US11231852B2 (en) Efficient sharing of non-volatile memory
CN102667714A (en) method and system for enabling access to functionality provided by resources outside of an operating system environment
CN115421787A (en) Instruction execution method, apparatus, device, system, program product, and medium
JP2006164266A (en) Improvement in performance of operating system
US6226725B1 (en) Method and system in a data processing system for the dedication of memory storage locations
CN117194055B (en) GPU video memory application and release method, device and storage medium
CN112506676B (en) Inter-process data transmission method, computer device and storage medium
US20180180674A1 (en) Embedded firmware content tracing
US20120284478A1 (en) Managing storage extents and the obtaining of storage blocks within the extents
CN100349121C (en) Embedded type parallel computation system and embedded type parallel computing method
KR20050043299A (en) Apparatus and method for handling interrupt using dynamic allocation memory in embedded system
US6675238B1 (en) Each of a plurality of descriptors having a completion indicator and being stored in a cache memory of an input/output processor
EP2277109B1 (en) Operating system fast run command
JP2018120307A (en) Accelerator processing management apparatus, host apparatus, accelerator processing execution system, method and program
CN111966472A (en) Process scheduling method and system for industrial real-time operating system
CN112488293B (en) Method and device for operating deep learning network
CN112041817A (en) Method and node for managing requests for hardware acceleration by means of an accelerator device
US11593113B2 (en) Widening memory access to an aligned address for unaligned memory operations

Legal Events

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