KR100892857B1 - Internal memory of system on chip and operation method thereof - Google Patents

Internal memory of system on chip and operation method thereof Download PDF

Info

Publication number
KR100892857B1
KR100892857B1 KR1020080074776A KR20080074776A KR100892857B1 KR 100892857 B1 KR100892857 B1 KR 100892857B1 KR 1020080074776 A KR1020080074776 A KR 1020080074776A KR 20080074776 A KR20080074776 A KR 20080074776A KR 100892857 B1 KR100892857 B1 KR 100892857B1
Authority
KR
South Korea
Prior art keywords
data
memory
size
internal memory
chip
Prior art date
Application number
KR1020080074776A
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 KR1020080074776A priority Critical patent/KR100892857B1/en
Application granted granted Critical
Publication of KR100892857B1 publication Critical patent/KR100892857B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

An internal memory device of an SoC(System on Chip) and an operation method thereof are provided to set up the areas of an instruction memory and data memory dynamically according to the size of an execution file in a microprocessor of the SoC having the Harvard architecture. An internal memory is divided into a plurality of logic blocks(40). According to the first set value, the first MUX(50) is connected to some of the logic blocks. The first MUX forms an instruction memory interface to set up an instruction memory area. According to the second set value, the second MUX(60) is connected to the rest logic blocks. The second MUX forms a data memory interface to set up a data memory area. The first and second set values set up the size obtained by summing the size of RO(Read Only) data and the size of RW(Read Write) data as the size of a logic block.

Description

시스템온칩의 내부 메모리 장치 및 그 운영방법{INTERNAL MEMORY OF SYSTEM ON CHIP AND OPERATION METHOD THEREOF}System-on-chip internal memory device and its operation method {INTERNAL MEMORY OF SYSTEM ON CHIP AND OPERATION METHOD THEREOF}

본 발명은 시스템온칩의 내부 메모리 장치 및 그 운영방법에 관한 것으로서, 보다 상세하게는 하버드 아키텍처를 갖는 시스템온칩의 마이크로 프로세서에서 실행파일의 크기에 따라 명령어 메모리와 데이터 메모리의 영역을 동적으로 설정함으로써 제한적인 메모리의 용량을 효율적으로 사용할 수 있도록 한 시스템온칩의 내부 메모리 장치 및 그 운영방법에 관한 것이다. The present invention relates to an internal memory device of a system-on-chip and a method of operating the same. More specifically, the microprocessor of a system-on-chip having a Harvard architecture is limited by dynamically setting an area of an instruction memory and a data memory according to the size of an executable file. The present invention relates to an internal memory device of a system-on-chip and an operating method thereof capable of efficiently using a conventional memory capacity.

최근의 ASIC(Application Specific Integrated Circuit) 기술은 칩 세트를 기본으로 하던 것으로부터 임베디드 코어를 베이스로 한 시스템 온 칩(SoC ; System on Chip)으로 이행되고 있다. SoC란 의도한 어플리케이션의 기능 전체를 실현하도록 단독 형식의 VLSI(코어)를 복수개 서로 연결한 IC로써 "코어"로 불리는 각종 어플리케이션을 실현하기 위한 복잡한 기능이 사전에 설계된 모델을 이용하여 구성되어 있다. Recent application specific integrated circuit (ASIC) technology is shifting from a chip set based to an embedded core based system on chip (SoC). An SoC is an IC that connects a plurality of VLSI (cores) of a single type to each other to realize all the functions of an intended application. The SoC is composed of pre-designed models with complex functions for realizing various applications called "cores".

이들 코어는, 일반적으로, Verilog나 VHDL과 같은 고급 기술 언어(HDL)로 기술된 소프트 코어 형태로 제공되거나 또는 GDSII와 같은 트랜지스터 레벨의 레이아웃의 하드 코어 형태로 제공되며, 일반적인 SoC는 마이크로 프로세서, 대규모 메모리 어레이, 음성이나 비디오의 컨트롤러, 모뎀, 2차원이나 3차원의 그래픽 컨트롤러, DSP 등으로서 칩 상에서 기능을 실현하기 위해 하드 코어와 소프트 코어가 조합되는 경우가 많다.These cores are typically provided in the form of soft cores written in high-level description languages (HDL) such as Verilog or VHDL, or in the form of hard cores in transistor-level layouts such as GDSII. Hard cores and soft cores are often combined to realize functions on a chip as a memory array, a voice or video controller, a modem, a two-dimensional or three-dimensional graphics controller, or a DSP.

이러한 SoC를 이용하게 될 경우 모든 기본적인 하드웨어 구성요소들을 보드상에 조합하는 방법에 비해 시스템 크기가 작아질 뿐만 아니라 가격적인 면에서도 많은 장점이 있어 휴대용 전자 제품 등에 사용되어 진다.The use of these SoCs not only reduces the size of the system, but also offers a number of advantages in terms of cost compared to combining all the basic hardware components on the board.

일반적으로 하버드 아키텍처는 시스템온칩의 프로세서 코어가 명령어를 읽어오는 메모리 인터페이스와 데이터를 읽고 쓰기 위한 메모리 인터페이스를 별도로 가지고 있어 명령어를 읽으면서 동시에 데이터를 읽거나 쓸 수 있고, 데이터를 읽거나 쓰면서 명령어를 읽을 수 있는 구조로써, 시스템의 한 CPI(Clock cycles Per Instruction) 내에서 명령어와 데이터를 동시에 처리함으로써 빠른 실행속도를 갖는다. Generally, the Harvard architecture has a separate memory interface for the processor core of the system-on-chip to read instructions and a memory interface for reading and writing the data so that the data can be read or written simultaneously while reading the instructions, and the data can be read while the data is read or written. It is a structure that can process instructions and data simultaneously in one CPI (Clock cycles Per Instruction) of the system and has a fast execution speed.

도 1은 하버드 아키텍처 구조를 갖는 시스템온칩의 내부 메모리 장치를 나타낸 블록구성도이다. 1 is a block diagram illustrating an internal memory device of a system-on-chip having a Harvard architecture.

여기에 도시된 바와 같이 명령어를 저장하는 명령어 메모리(10)와 일반적인 데이터를 저장하는 데이터 메모리(30)가 따로 존재하며, 마이크로 프로세서(20)에 서 명령어 메모리(10)로부터 명령어를 읽어오기 위한 메모리 인터페이스와 데이터 메모리(30)로 데이터를 읽고 쓰기 위한 메모리 인터페이스를 별도로 가지고 있어 명령어를 읽으면서 동시에 데이터를 읽거나 쓸 수 있도록 구성된다. As shown here, there is an instruction memory 10 for storing instructions and a data memory 30 for storing general data, and a memory for reading instructions from the instruction memory 10 in the microprocessor 20. It has a separate memory interface for reading and writing data into the interface and the data memory 30, and is configured to read or write data while reading commands.

일반적으로 많이 사용되는 시스템온칩으로써 ARM 프로세서의 경우 ITCM(Instruction Tightly-Coupled Memory)과 DTCM(Data Tightly-Coupled Memory)으로 구성된다. In general, the ARM-based processor is composed of Instruction Tightly-Coupled Memory (ITCM) and Data Tightly-Coupled Memory (DTCM).

도 2는 일반적으로 실행파일이 내부 메모리에 저장되는 구조를 나타낸 도면이다. 2 is a diagram illustrating a structure in which an executable file is generally stored in an internal memory.

실행파일은 데이터 종류에 따라 RO(Read Only)데이터와 RW(Read Write)데이터와, ZI(Zero Initial)데이터로 구분되어 RO데이터는 RO영역에 저장되고, RW데이터는 RW영역에 저장되고, ZI데이터는 ZI영역에 저장된다. Executable files are divided into RO (Read Only) data, RW (Read Write) data, and ZI (Zero Initial) data according to the data type. RO data is stored in the RO area, and RW data is stored in the RW area. Data is stored in the ZI area.

이때 명령어는 RO영역에 귀속되고, 초기값이 있는 데이터는 RW영역에, 초기화가 되지 않은 데이터인 경우에는 ZI영역에 각각 귀속된다. In this case, the command belongs to the RO area, and data with an initial value belongs to the RW area and, in the case of uninitialized data, to the ZI area, respectively.

이러한 데이터의 분류작업은 실행파일 생성시 컴파일러가 분류하게 되며, 링커가 이러한 데이터를 모아서 분산 적재 파일(Scatter loading file)을 이용하여 실행 파일을 생성하게 된다.The classification of such data is classified by the compiler when generating an executable file, and the linker collects such data to generate an executable file using a scatter loading file.

이러한 실행파일은 프로세서 내부 메모리에 적재된 후에 RO데이터는 명령어 메모리에, RW와 ZI데이터는 데이터 메모리에 다시 적재되어 시스템이 동작된다.  After the executable file is loaded into the processor internal memory, the RO data is loaded into the instruction memory and the RW and ZI data are loaded back into the data memory.

위에서 설명한 기술은 본 발명이 속하는 기술분야의 배경기술을 의미하며, 종래기술을 의미하는 것은 아니다. The technology described above refers to the background of the technical field to which the present invention belongs, and does not mean the prior art.

이와 같이 실행파일이 필요로 하는 명령어 메모리의 용량과 데이터 메모리의 용량에 상관없이 고정된 메모리를 각각 사용함으로써 사용하지 않는 메모리가 존재하거나, 소프트웨어의 실행파일이 변경되어 실행파일의 크기가 커질 경우 각각의 명령어 메모리나 데이터 메모리의 용량이 부족한 경우가 발생하는 문제점이 있다. As such, regardless of the amount of command memory and data memory required by an executable file, each unused memory exists by using fixed memory, or when the size of the executable file is increased due to the change of the executable file of the software. There is a problem that occurs when the capacity of the command memory or data memory is insufficient.

또한, 명령어 메모리와 데이터 메모리가 내장된 칩이 이미 생산된 상태에서 메모리의 용량이 부족한 경우, 이를 해결하기 위하여 메모리의 용량을 증가시킨 칩을 다시 제작하거나, 소프트웨어의 필요한 기능을 제거하거나 최적화 기법을 사용하여 실행파일을 줄이는 방법을 사용했었다. In addition, if the memory capacity is insufficient when the chip with the built-in instruction memory and data memory is already produced, to solve the problem, the chip which has increased the memory capacity is removed, or the necessary functions of the software are removed or optimization techniques are performed. We used to reduce the size of executables.

그러나, 메모리의 용량을 증가시켜야 할 경우, 다시 칩을 제작해야 함으로 추가적인 시간이 소요될 뿐만 아니라 칩 크기가 커지고 개발비용이 증가하는 문제점이 있다. However, when the capacity of the memory needs to be increased, the chip needs to be manufactured again, which leads to additional time, chip size, and development cost.

또한, 소프트웨어의 실행 파일 크기를 줄이는 경우, 크기를 줄일 수 있는 한계가 존재하고, 실행 코드 최적화에 추가적인 비용이 소모되며, 최악의 경우 소프트웨어 기능의 누락이 발생할 수 있는 문제점이 있다. In addition, when reducing the size of the executable file of the software, there is a limit to reduce the size, there is a problem that additional cost is consumed to optimize the execution code, and in the worst case may be missing the software function.

본 발명은 상기와 같은 문제점을 개선하기 위해 창작된 것으로서, 하버드 아키텍처를 갖는 시스템온칩의 마이크로 프로세서에서 실행파일의 크기에 따라 명령 어 메모리와 데이터 메모리의 영역을 동적으로 설정함으로써 제한적인 메모리의 용량을 효율적으로 사용할 수 있도록 한 시스템온칩의 내부 메모리 장치 및 그 운영방법을 제공하는데 그 목적이 있다. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems. In the microprocessor of a system-on-chip having a Harvard architecture, a limited memory capacity is set by dynamically setting an area of an instruction memory and a data memory according to an executable file size. An object of the present invention is to provide an internal memory device and a method of operating the same, which can be efficiently used.

본 발명의 일 측면에 따른 시스템온칩의 내부 메모리 장치는 명령어 메모리 인터페이스와 데이터 메모리 인터페이스를 갖는 마이크로 프로세서를 포함한 시스템온칩의 내부 메모리 장치에 있어서; 다수개의 논리블록으로 구분된 내부 메모리; 제 1설정값에 따라 내부 메모리의 다수개의 논리블록 중 일부와 연결되어 명령어 메모리 인터페이스를 형성하여 명령어 메모리 영역을 설정하는 제 1먹스; 및 제 2설정값에 따라 내부 메모리의 다수개의 논리블록 중 다른 일부와 연결되어 데이터 메모리 인터페이스를 형성하여 데이터 메모리 영역을 설정하는 제 2먹스;를 포함하는 것을 특징으로 한다. An internal memory device of a system on chip according to an aspect of the present invention includes an internal memory device of a system on chip including a microprocessor having a command memory interface and a data memory interface; An internal memory divided into a plurality of logical blocks; A first mux connected to some of the plurality of logical blocks of the internal memory according to the first setting value to form a command memory interface to set a command memory area; And a second mux connected to other portions of the plurality of logical blocks of the internal memory to form a data memory interface according to the second set value to set a data memory region.

본 발명에서 제 1내지 제 2설정값은 실행파일 생성시 생성된 RO데이터 크기와 RW데이터 크기를 합산한 크기를 논리블록의 크기로 설정하는 것을 특징으로 한다. In the present invention, the first to second setting values may be set to the size of the logical block by adding the RO data size and the RW data size generated when the execution file is generated.

본 발명의 일 측면에 따른 시스템온칩의 메모리장치 운영방법은 다수개의 논리블록으로 구분되는 내부 메모리 중 제 1내지 제 2설정값에 따라 일부와 연결되어 명령어 메모리 영역을 설정하는 제 1먹스와 다른 일부와 연결되어 데이터 메모리 영역을 설정하는 제 2먹스를 포함하는 시스템온칩의 메모리 장치 운영방법에 있어서; 부트 로더에 의해 실행이미지가 상기 메모리에 적재되면 RO데이터의 크기와 RW데이터의 크기를 로딩하는 단계; RO데이터의 크기와 RW데이터의 크기를 합산한 후 합산한 크기를 저장할 수 있는 논리블록의 개수를 산출하는 단계; 및 산출된 논리블록의 개수에 따라 제 1내지 제 2설정값을 설정하여 명령어 메모리 영역과 데이터 메모리 영역을 설정하는 단계;를 포함하는 것을 특징으로 한다. A memory device operating method of a system-on-chip according to an aspect of the present invention is connected to a part of the internal memory divided into a plurality of logical blocks according to a first or second set value and the other part of the first mux to set an instruction memory area. A method of operating a memory device of a system on a chip, the method comprising: a second mux connected with a second memory to set a data memory area; Loading a size of RO data and a size of RW data when an execution image is loaded into the memory by a boot loader; Calculating the number of logical blocks capable of storing the sum of the size of the RO data and the size of the RW data; And setting the command memory area and the data memory area by setting first to second set values according to the calculated number of logical blocks.

본 발명에서 제 2설정값은 산출된 논리블록의 개수를 다수개의 논리블록에서 차감한 개수에 따라 설정하는 것을 특징으로 한다. In the present invention, the second predetermined value is set according to the number of calculated logical blocks subtracted from the plurality of logical blocks.

본 발명에서 데이터 메모리 영역은 적어도 1개 이상의 논리블록이 포함되는 것을 특징으로 한다. In the present invention, the data memory area is characterized by including at least one logical block.

상기한 바와 같이 본 발명은 하버드 아키텍처를 갖는 시스템온칩의 마이크로 프로세서에서 실행파일의 크기에 따라 명령어 메모리와 데이터 메모리의 영역을 동적으로 설정함으로써 제한적인 메모리의 용량을 효율적으로 사용할 수 있을 뿐만 아니라 메모리의 낭비를 줄일 수 있다. As described above, the present invention can efficiently use the limited memory capacity by dynamically setting the area of the instruction memory and the data memory in accordance with the size of the executable file in the microprocessor of the system-on-chip having the Harvard architecture. Reduce waste

또한, 메모리의 부족으로 인해 메모리에 적재될 소프트웨어의 기능을 조절하기 위한 수고를 줄일 수 있으며, 칩을 다시 제작하기 위해 발생되는 비용을 절감할 수 있다. In addition, the lack of memory can reduce the effort to adjust the function of the software to be loaded into the memory, and reduce the cost incurred to rebuild the chip.

또한, 메모리의 용량을 효율적으로 사용함으로서 전체적인 칩의 크기를 줄일 수 있다. In addition, by efficiently using the capacity of the memory it is possible to reduce the overall size of the chip.

이하, 첨부된 도면을 참조하여 본 발명에 따른 시스템온칩의 내부 메모리 장치 및 그 운영방법의 일 실시예를 설명한다. 이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로, 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, an embodiment of an internal memory device and a method of operating the same according to the present invention will be described with reference to the accompanying drawings. In this process, the thickness of the lines or the size of the components shown in the drawings may be exaggerated for clarity and convenience of description. In addition, terms to be described below are terms defined in consideration of functions in the present invention, which may vary according to the intention or convention of a user or an operator. Therefore, definitions of these terms should be made based on the contents throughout the specification.

도 3은 본 발명의 일 실시예에 따른 시스템온칩의 내부 메모리 장치를 나타낸 블록구성도이다. 3 is a block diagram illustrating an internal memory device of a system on chip according to an embodiment of the present invention.

여기에 도시된 바와 같이 시스템온칩의 내부 메모리 장치는 하버드 아키텍처에 의해 명령어 메모리 인터페이스와 데이터 메모리 인터페이스를 갖는 마이크로 프로세서(10)와, n개의 제 1내지 제 n논리블록(#1∼#n)으로 구분되어 형성된 내부 메모리(40)와, 제 1설정값에 따라 내부 메모리(10)의 제 1내지 제 n논리블록(#1∼#n) 중 일부와 연결되어 명령어 메모리 인터페이스를 형성하여 명령어 메모리 영역을 설정하는 제 1먹스(50)와, 제 2설정값에 따라 내부 메모리(40)의 제 1내지 제 n논리블록(#1∼#n) 중 다른 일부와 연결되어 데이터 메모리 인터페이스를 형성하여 데이터 메모리 영역을 설정하는 제 2먹스(60)를 포함한다. As shown here, the internal memory device of the system-on-chip is composed of a microprocessor 10 having an instruction memory interface and a data memory interface, and n first to nth logical blocks (# 1 to #n) by a Harvard architecture. The command memory region is formed by forming the command memory interface by being connected to the internal memory 40 and a part of the first to nth logical blocks # 1 to #n of the internal memory 10 according to the first set value. And a first mux 50 for setting the data and other portions of the first to nth logical blocks # 1 to #n of the internal memory 40 according to the second set value to form a data memory interface. A second mux 60 for setting a memory area is included.

이때 제 1먹스(50)와 제 2먹스(60)의 제 1내지 제 2설정값은 실행파일 생성 시 생성된 RO데이터 크기와 RW데이터 크기를 합산한 크기를 논리블록의 크기로 설정하여 명령어 메모리 영역과 데이터 메모리 영역을 설정한다. In this case, the first to second setting values of the first mux 50 and the second mux 60 are set to the size of the logical block by adding the RO data size and the RW data size generated when the execution file is generated to the size of the logical block. Set the area and data memory area.

위에서 RW데이터는 도 2에 도시된 바와 같이 실행파일이 생성될 경우 데이터 메모리 영역에 적재되어야 함에도 불구하고 명령어 메모리 영역을 설정하는데 기준이 되는 이유는 시스템이 소프트웨어적으로 재 시동되어 데이터의 초기화가 필요할 경우에 대비하여 명령어 메모리의 영역을 확보해야 하기 때문이다. Although the RW data should be loaded into the data memory area when an executable file is generated as shown in FIG. 2, the reason for setting the instruction memory area is that the system is software-restarted and requires data initialization. This is because the memory of the instruction memory must be reserved in case.

ZI데이터는 0으로 초기화되는 값이기 때문에 명령어 데이터 영역을 확보할 필요는 없다. Since ZI data is a value initialized to 0, it is not necessary to secure an instruction data area.

이와 같이 제 1설정값에 의해 제 1먹스(50)는 제 1논리블록(#1)과 제 2논리블록(#2)에 연결되어 명령어 메모리 인터페이스를 형성함으로써 제 1논리블록(#1)과 제 2논리블록(#2)에 의해 명령어 메모리 영역을 설정한다. As described above, the first mux 50 is connected to the first logical block # 1 and the second logical block # 2 by the first setting value to form a command memory interface, and thus the first mux 50 is connected to the first logical block # 1. The instruction memory area is set by the second logical block # 2.

반면에 제 2설정값에 의해 제 2먹스(60)는 제 3논리블록 내지 제 n논리블록(#3∼#n)에 연결되어 데이터 메모리 인터페이스를 형성함으로써 제 3논리블록 내지 제 n논리블록(#1∼#n)에 의해 데이터 메모리 영역을 설정한다. On the other hand, the second mux 60 is connected to the third to nth logical blocks # 3 to #n by the second setting value to form a data memory interface, thereby forming the third to nth logical blocks ( # 1 to #n) to set the data memory area.

따라서, 실행파일이 생성되면 마이크로 프로세서(20)는 실행파일의 크기에 따라 제 1먹스(50)와 제 2먹스(60)에 의해 동적으로 설정된 명령어 메모리 영역과 데이터 메모리 영역에 실행파일을 복사하여 초기화한다. Therefore, when the executable file is generated, the microprocessor 20 copies the executable file to the command memory area and the data memory area dynamically set by the first mux 50 and the second mux 60 according to the size of the executable file. Initialize

도 4는 위와 같이 이루어진 본 발명에 의한 시스템온칩의 내부 메모리 장치에서 명령어 메모리 영역과 데이터 메모리 영역을 실행파일의 크기에 따라 동적으 로 설정하는 방법에 대해 구체적으로 설명하기 위한 운영방법을 설명하기 위한 흐름도이다. 4 is a view illustrating an operation method for explaining in detail a method of dynamically setting an instruction memory area and a data memory area according to an executable file size in an internal memory device of a system-on-chip according to the present invention. It is a flow chart.

먼저, 부트 로더에 의해 실행이미지가 내부 메모리(40)에 적재되면 RO데이터의 크기와 RW데이터의 크기를 로딩한다(S10). First, when the execution image is loaded into the internal memory 40 by the boot loader, the size of the RO data and the size of the RW data are loaded (S10).

이때 RW데이터는 실행파일이 생성될 경우 데이터 메모리 영역에 적재되지만 시스템이 소프트웨어적으로 재 시동되어 데이터의 초기화가 필요할 경우에 대비하여 명령어 메모리의 영역을 설정하는데 기준이 된다. In this case, the RW data is loaded into the data memory area when an executable file is created, but it is a reference for setting the area of the command memory in case the system is restarted by software and the data needs to be initialized.

이와 같이 RO데이터의 크기와 RW데이터의 크기를 합산한 크기를 기반으로 이 합산한 크기를 저장할 수 있는 논리블록의 개수를 산출한다(S20). As described above, the number of logical blocks capable of storing the sum of the sizes is calculated based on the sum of the sizes of the RO data and the sizes of the RW data (S20).

이렇게 산출된 논리블록의 개수가 명령어 메모리 영역의 크기가 됨에 따라 제 1설정값을 제 1먹스(50)가 산출된 개수의 논리블록과 연결되도록 설정하여 명령어 메모리 인테페이스를 형성한다(S30). As the number of logical blocks calculated as described above becomes the size of the instruction memory area, the first set value is set to be connected to the number of logical blocks of the first mux 50 to form an instruction memory interface (S30).

위에서 명령어 메모리 영역의 크기는 전체 내부 메모리(40)의 크기를 넘지는 않는다. 즉, 분산 적재 파일(Scatter loading file)은 개발자가 RO데이터, RW데이터, ZI데이터의 시작 위치정보를 지정할 수 있도록 허용할 뿐만 아니라 최대 허용 실행파일의 크기를 입력함으로써 메모리가 허용하는 일정 크기 이상의 실행파일은 생성하지 못하도록 할 수 있다. In the above, the size of the instruction memory area does not exceed the size of the entire internal memory 40. In other words, the scatter loading file not only allows the developer to specify the starting location information of RO data, RW data, and ZI data, but also executes a predetermined size or more that the memory allows by inputting the maximum allowable executable file size. You can prevent the file from being created.

이때 명령어 메모리 영역의 크기는 전체 내부 메모리(40)에서 적어도 하나의 논리블록 크기의 데이터 메모리 영역을 보장할 수 있도록 설정하게 된다. In this case, the size of the command memory area is set to ensure a data memory area of at least one logical block size in the entire internal memory 40.

이후 제 1먹스(50)에 의해 연결된 논리블록을 제외한 논리블록에 대해 제 2 먹스(60)에 의해 연결되어 데이터 메모리 영역이 되도록 제 2설정값을 설정하여 데이터 메모리 인터페이스를 형성한다(S40). Thereafter, a second set value is set so that the logical block except for the logical block connected by the first mux 50 is connected by the second mux 60 to form a data memory area (S40).

이와 같이 명령어 메모리 영역과 데이터 메모리 영역의 크기가 결정되면 RW데이터를 데이터 메모리 영역으로 복사하고 ZI데이터를 0으로 초기화한 후 이후 필요한 절차를 계속 수행한다(S50).When the size of the instruction memory area and the data memory area is determined as described above, the RW data is copied to the data memory area, the ZI data is initialized to 0, and then the necessary procedure is continued (S50).

이와 같이 본 발명은 전체 실행파일을 내부 메모리(40)에 적재한 후 분산 적재 파일 규칙에 맞게 RO데이터, RW데이터, 및 ZI데이터를 각각 명령어 메모리 영역과 데이터 메모리 영역에 분산 적재하기에 앞서, 실행파일 생성시 생성되는 RO데이터, RW데이터, 및 ZI데이터의 크기정보를 이용하여 전체 내부 메모리 중 명령어 메모리 영역의 크기를 설정하고, 나머지 메모리 영역은 데이터 메모리 영역으로 설정하여 실행파일의 크기에 따라 동적으로 사용할 수 있다. As described above, according to the present invention, the entire execution file is loaded into the internal memory 40, and before the RO data, the RW data, and the ZI data are distributed and loaded into the instruction memory area and the data memory area according to the distributed loading file rule. The size of command memory area among all internal memory is set by using size information of RO data, RW data, and ZI data generated at the time of file creation, and the remaining memory area is set as data memory area. Can be used as

본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, this is merely exemplary, and those skilled in the art to which the art belongs can make various modifications and other equivalent embodiments therefrom. Will understand. Therefore, the technical protection scope of the present invention will be defined by the claims below.

도 1은 하버드 아키텍처 구조를 갖는 시스템온칩의 내부 메모리 장치를 나타낸 블록구성도이다. 1 is a block diagram illustrating an internal memory device of a system-on-chip having a Harvard architecture.

도 2는 일반적으로 실행파일이 내부 메모리에 저장되는 구조를 나타낸 도면이다. 2 is a diagram illustrating a structure in which an executable file is generally stored in an internal memory.

도 3은 본 발명에 의한 시스템온칩의 내부 메모리 장치를 나타낸 블록구성도이다. 3 is a block diagram illustrating an internal memory device of a system on chip according to the present invention.

도 4는 본 발명에 의한 시스템온칩의 내부 메모리 장치 운영방법을 설명하기 위한 흐름도이다. 4 is a flowchart illustrating a method of operating an internal memory device of a system on chip according to the present invention.

- 도면의 주요부분에 대한 부호의 설명 -   -Explanation of symbols for the main parts of the drawings-

10 : 명령어 메모리10: instruction memory

20 : 마이크로 프로세서20 microprocessor

30 : 데이터 메모리30: data memory

40 : 내부 메모리40: internal memory

50 : 제 1먹스50: first mux

60 : 제 2먹스60: second mux

Claims (5)

명령어 메모리 인터페이스와 데이터 메모리 인터페이스를 갖는 마이크로 프로세서를 포함한 시스템온칩의 내부 메모리 장치에 있어서; An internal memory device of a system-on-chip including a microprocessor having an instruction memory interface and a data memory interface; 다수개의 논리블록으로 구분된 내부 메모리; An internal memory divided into a plurality of logical blocks; 제 1설정값에 따라 상기 내부 메모리의 상기 다수개의 논리블록 중 일부와 연결되어 상기 명령어 메모리 인터페이스를 형성하여 명령어 메모리 영역을 설정하는 제 1먹스; 및 A first mux connected to some of the plurality of logical blocks of the internal memory according to a first setting value to form the command memory interface to set a command memory area; And 제 2설정값에 따라 상기 내부 메모리의 상기 다수개의 논리블록 중 다른 일부와 연결되어 상기 데이터 메모리 인터페이스를 형성하여 데이터 메모리 영역을 설정하는 제 2먹스;를 포함하는 것을 특징으로 하는 시스템온칩의 내부 메모리 장치. A second mux connected to other portions of the plurality of logical blocks of the internal memory according to a second setting value to form the data memory interface to set a data memory region; and an internal memory of a system-on-chip Device. 제 1항에 있어서, 상기 제 1내지 제 2설정값은 실행파일 생성시 생성된 RO데이터 크기와 RW데이터 크기를 합산한 크기를 상기 논리블록의 크기로 설정하는 것을 특징으로 하는 시스템온칩의 내부 메모리 장치. The internal memory of a system on a chip according to claim 1, wherein the first to second set values are set to a size of the logical block by adding the RO data size and the RW data size generated when the execution file is generated. Device. 다수개의 논리블록으로 구분되는 내부 메모리 중 제 1내지 제 2설정값에 따라 일부와 연결되어 명령어 메모리 영역을 설정하는 제 1먹스와 다른 일부와 연결되어 데이터 메모리 영역을 설정하는 제 2먹스를 포함하는 시스템온칩의 메모리 장치 운영방법에 있어서; A first mux connected to a part of the internal memory divided into a plurality of logical blocks according to a first to second set value and a second mux connected to another part to set a data memory area; A memory device operating method of a system on a chip; 부트 로더에 의해 실행이미지가 상기 내부 메모리에 적재되면 RO데이터의 크기와 RW데이터의 크기를 로딩하는 단계;Loading a size of RO data and a size of RW data when an execution image is loaded into the internal memory by a boot loader; 상기 RO데이터의 크기와 상기 RW데이터의 크기를 합산한 후 상기 합산한 크기를 저장할 수 있는 상기 논리블록의 개수를 산출하는 단계; 및Calculating the number of logical blocks capable of storing the sum of the size of the RO data and the size of the RW data; And 상기 산출된 논리블록의 개수에 따라 상기 제 1내지 제 2설정값을 설정하여 상기 명령어 메모리 영역과 상기 데이터 메모리 영역을 설정하는 단계;를 포함하는 것을 특징으로 하는 시스템온칩의 메모리장치 운영방법. And setting the command memory area and the data memory area by setting the first to second setting values according to the calculated number of logical blocks. 제 3항에 있어서, 상기 제 2설정값은 상기 산출된 논리블록의 개수를 상기 다수개의 논리블록에서 차감한 개수에 따라 설정하는 것을 특징으로 하는 시스템온칩의 메모리장치 운영방법. 4. The method of claim 3, wherein the second set value is set according to the number of the calculated logical blocks subtracted from the plurality of logical blocks. 제 3항에 있어서, 상기 데이터 메모리 영역은 적어도 1개 이상의 논리블록이 포함되는 것을 특징으로 하는 시스템온칩의 메모리장치 운영방법. The method of claim 3, wherein the data memory area includes at least one logical block.
KR1020080074776A 2008-07-30 2008-07-30 Internal memory of system on chip and operation method thereof KR100892857B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080074776A KR100892857B1 (en) 2008-07-30 2008-07-30 Internal memory of system on chip and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080074776A KR100892857B1 (en) 2008-07-30 2008-07-30 Internal memory of system on chip and operation method thereof

Publications (1)

Publication Number Publication Date
KR100892857B1 true KR100892857B1 (en) 2009-04-15

Family

ID=40757621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080074776A KR100892857B1 (en) 2008-07-30 2008-07-30 Internal memory of system on chip and operation method thereof

Country Status (1)

Country Link
KR (1) KR100892857B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230098610A (en) * 2020-11-11 2023-07-04 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Enhanced endurance for system-on-a-chip (SOCs)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659711A (en) * 1991-03-13 1997-08-19 Mitsubishi Denki Kabushiki Kaisha Multiport memory and method of arbitrating an access conflict therein
KR19990062575A (en) * 1997-12-31 1999-07-26 포만 제프리 엘 Method and apparatus for selecting the next instruction in a superscalar or ultra-long instruction wordcomputer with N-branches
KR20040000382A (en) * 1991-07-08 2004-01-03
KR20060003927A (en) * 2004-07-05 2006-01-12 한국과학기술원 The branch processing processor having specifiable delay slots and squashing condition

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659711A (en) * 1991-03-13 1997-08-19 Mitsubishi Denki Kabushiki Kaisha Multiport memory and method of arbitrating an access conflict therein
KR20040000382A (en) * 1991-07-08 2004-01-03
KR19990062575A (en) * 1997-12-31 1999-07-26 포만 제프리 엘 Method and apparatus for selecting the next instruction in a superscalar or ultra-long instruction wordcomputer with N-branches
KR20060003927A (en) * 2004-07-05 2006-01-12 한국과학기술원 The branch processing processor having specifiable delay slots and squashing condition

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230098610A (en) * 2020-11-11 2023-07-04 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Enhanced endurance for system-on-a-chip (SOCs)
KR102656509B1 (en) 2020-11-11 2024-04-12 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Improved durability for systems on chips (SOCs)

Similar Documents

Publication Publication Date Title
US9195786B2 (en) Hardware simulation controller, system and method for functional verification
JP6319880B2 (en) Parallelism extraction method and program creation method
US10901492B1 (en) Power reduction in processor pipeline by detecting zeros
TWI750176B (en) Electronic device performing software training on memory channel, memory channel training method thereof and system thereof
GB2545170A (en) GPU virtualisation
CN112035397B (en) Electronic system including FPGA and method of operating the same
US10168957B2 (en) Directed placemat of data in memory
US10353717B2 (en) Build-time memory management for multi-core embedded system
US20210279103A1 (en) Resource allocation in a parallel processing system
US10747516B1 (en) Applications for hardware accelerators in computing systems
JP2011107925A (en) Program, control method, and controller
JP7425685B2 (en) electronic control unit
KR100892857B1 (en) Internal memory of system on chip and operation method thereof
US20050254311A1 (en) Method and apparatus for resetable memory and design approach for same
US20160335064A1 (en) Infrastructure to support accelerator computation models for active storage
US20110061032A1 (en) High-level synthesis apparatus, high-level synthesis method, and computer readable medium comprising high-level synthesis program
TWI760756B (en) A system operative to share code and a method for code sharing
Goulding-Hotta Specialization as a Candle in the Dark Silicon Regime
TWI249130B (en) Semiconductor device
JP6196315B2 (en) Store regeneration policy
JP7274069B2 (en) TRACE CONTROL DEVICE, EMULATOR, TRACE CONTROL METHOD, AND TRACE CONTROL PROGRAM
Shacham et al. Smart memories polymorphic chip multiprocessor
JP4840963B2 (en) Bus system and control method thereof
JP6103972B2 (en) Program generation method, program execution method, program execution device, and program execution program
KR20240063991A (en) Device and method for reducing save restore latency using address linearization

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee