SOC SYSTEM AND METHOD FOR OPERATING THE SAME

A SOC system includes a central processing unit; a memory management unit receiving a virtual address from the central processing unit and converting the virtual address into a physical address; a main memory implemented by a volatile memory and directly accessed through the physical address converted by the memory management unit; and a storage implemented by a nonvolatile memory separate from the main memory and including a first area directly accessed through the physical address converted by the memory management unit.

DETAILED DESCRIPTION

The present inventive concept and methods of accomplishing the same may be understood more readily by reference to the following detailed description of exemplary embodiments thereof and the accompanying drawings. The present inventive concept may, however, be embodied in many different forms and should not be construed as being limited to the exemplary embodiments set forth herein. In the drawings, the thickness of layers and regions may be exaggerated for clarity.

It will be understood that when an element or layer is referred to as being “on” or “connected to” another element or layer, it can be directly on or connected to the other element or layer or intervening elements or layers may be present.

The methods of the inventive concept described below can be embodied as computer readable codes on a computer readable recording medium. The medium is any data storage device that can store data which can be thereafter read by a computer system. For example, the medium may include program storage device such as a hard disk, magnetic floppy disk, RAM, ROM, CD ROM, etc., and be executable by and device or machine comprising suitable architecture, such as a general purpose digital computer having a processor, memory, and input/output interfaces.

Hereinafter, a SOC system according to an exemplary embodiment of the present inventive concept will be described with reference toFIG. 1.

FIG. 1is a block diagram illustrating the SOC system according to an exemplary embodiment of the present inventive concept.

Referring toFIG. 1, the SOC (System On Chip) system includes a main memory10, an MMU (Memory Management Unit)40, a CPU (Central Processing Unit)60, a storage80, and an operating system OS70. The operating system70may be executed by the CPU60and loaded from another memory (not shown).

In an exemplary embodiment, the main memory10stores data that is used for an operation of the central processing unit60. For example, when the central processing unit60operates to perform (e.g., execute) a process71(e.g., a computer program), the main memory10loads the data that is necessary for an operation from the storage80or the like, and provides the data that is necessary for the operation to the central processing unit60.

In an exemplary embodiment of the present inventive concept, the main memory10is implemented by a volatile memory. The main memory10may be implemented by, for example, a DRAM (Dynamic Random Access Memory), an SRAM (Static Random Access Memory), or an embedded RMA, but the present inventive concept is not limited thereto.

The OS70may generate the process71that is necessary for execution of file data stored in the storage80or the like. To perform the process71generated as above, the OS70may command the central processing unit60to operate and process the data that is addressed by a VA (Virtual Address), and thus the central processing unit60may provide the virtual address of the data that is necessary for the operation and processing to the memory management unit40.

In an exemplary embodiment, the memory management unit40, which has received the virtual address from the central processing unit60, converts the virtual address provided from the central processing unit60into a PA (Physical Address) that can be directly referred to on the main memory10or a first area81of the storage80with reference to a page table (not illustrated). Although the page table is not illustrated inFIG. 1, in an exemplary embodiment of the present inventive concept, the page table may be stored in the main memory10or the first area81of the storage80.

The storage80may be provided with a mass storage space in comparison to the main memory10, and may be implemented by, for example, a nonvolatile memory. Examples of such a nonvolatile memory include an MRAM (Magnetic Random Access Memory), a PRAM (Phase-change Random Access Memory), an FRAM (Ferroelectric Random Access Memory), and the like, but the present inventive concept is not limited thereto.

In an exemplary embodiment where the storage80is implemented by the MRAM, the MRAM using a magnetic material element has both the DRAM characteristic in which electric information can be rapidly taken out and the magnetic recording characteristic in which the information can be kept for a long term, and thus the SOC system according to this embodiment can be operated at a higher speed.

An example of the storage80implemented by the nonvolatile memory may be a SSD (Solid State Drive), but the present inventive concept is not limited thereto. In an exemplary embodiment of the present inventive concept, the storage80is a HDD (Hard Disk Drive).

Referring again toFIG. 1, the storage80includes the first area81and a second area82. In the first area81of the storage80, a specific area having a predetermined characteristic of an execution file is loaded in the form of a binary file. In an exemplary embodiment, when external data is stored in the first area81of the storage80, the data is not stored with a file structure as is the case when storing the data in general storage. For example, the data may be stored in the form of a binary file (e.g., execution file) in which a source code of the execution file is compiled and linked as in the case of loading the data to the main memory10.

For example, if a binary file is opened as if it is a text file, it will not be understandable by a human operator as human readable text. For example, one can use a computer program written in a computer language (e.g., C) to write several human readable characters (e.g., “ABC”, “DOG”, etc.) into a binary file. The resulting binary file does not include the human readable characters but binary representations of these characters. For example, the hexadecimal code 41 (or 01000001 in binary) represents a capital “A” in standard ASCII notation. However, a computer program can be written to read back the stored data into variables that can be output using a print function to a printer or presented to a display using a display function. For example, if the binary file includes 1 byte of binary data, and a variable is a 1 byte character, a binary read operation performed on the binary file can be used to store the 1 byte character into the variable, and a print function (e.g., printf) can be used to display the human readable version of the binary data. In another example, computer executable commands are written into an executable binary file (e.g., an execution file). The resulting executable binary file does not include human readable commands but binary representations of these commands/instructions that are executable by a processor (e.g., CPU60).

In an exemplary embodiment of the present inventive concept, the predetermined characteristic is a read-only characteristic that is necessary for an operation of the process71. For example, in the first area81of the storage80, the specific area of the execution file having the read-only characteristic that is necessary for the operation of the process71is loaded in the form of a binary file.

Further, in an exemplary embodiment of the present inventive concept, the specific area of the execution file may be, for example, a code area of the execution file. For example, in the first area81of the storage, a code area (e.g., code segment) of the execution file having the read-only characteristic may be loaded in the form of a binary file. In an exemplary embodiment, the code area refers to a section of a program in an object file, which contains executable instructions.

When the execution file is executed, the first area81of the storage80is allocated (e.g., configured) by the OS70like the area of the main memory10that can be directly accessed by the memory management unit40. For example, when the execution file is executed, the memory management unit40according to this embodiment directly accesses the main memory10which is implemented separately from the storage80and includes, for example, a volatile memory, and the first area81of the storage80which includes, for example, a nonvolatile memory such as an MRAM.

As described above, since the code area having the read-only characteristic has already been loaded in the first area81of the storage80, the memory management unit40refers to and provides the code area to the central processing unit60without performing any additional work, and thus page swap between the main memory10and the storage80or the like becomes unnecessary.

Further, since the code area stored in the first area81of the storage80has the to read-only characteristic, an additional write operation never or rarely occurs in the first area81of the storage80, and thus the operational performance of the whole system does not deteriorate even if the storage80is implemented by, for example, an MRAM.

In an exemplary embodiment of the present inventive concept, when the execution file is executed, the first area81of the storage80is used as a virtual memory. Such a virtual memory is a partial area of the storage space of the storage80that is used just like the main memory10. The virtual memory of the storage80may be needed when the amount of data to be processed in the SOC system is excessive, such as in a multimedia environment or the like. For example, the main memory10, by itself, may not be able to accommodate all the data that is required to execute a multimedia process. If the first area81of the storage80is used as the virtual memory, when the execution file is executed, for example, the configuration of the SOC system as described above may be modified so that a TLB (Transition Lookaside Buffer) directly accesses the first area81of the storage80. In an exemplary embodiment, the MMU40includes the TLB. A TLB may be a cache that is used to improve virtual address translation speed. For example, a TLB can be used to map virtual addresses to physical addresses.

The second area82of the storage80according to this embodiment may be used in a similar manner to the storage of a general SOC system. For example, in the second area82of the storage80, the remaining area of the execution file that is not stored in the first area81is stored. An example of such an area may be a data area (data segment) or a BSS area (BSS segment), but the present inventive concept is not limited thereto. In an exemplary embodiment, the data area contains global variables and static variables that are initialized by a programmer. The size of the data area may be determined by the values placed there by the programmer before the program was compiled. In an embodiment, the BSS starts at the end of the data area and contains all global variables and static variables that initialized to an initial value (e.g., 0), or do not have explicit initialization in source code. The data area and the BSS area of the execution file that is stored in the second area82of the storage80may be stored in the form of a file structure unlike the code area that is loaded in the form of a binary file in the first area81of the storage80. In an exemplary embodiment, the contents of the file structure unlike the code area include human readable data (e.g., text).

Hereinafter, referring toFIGS. 2 to 4, the operation of the SOC system according to an exemplary embodiment of the present inventive will be described.

FIG. 2is a flowchart explaining a method of operating the SOC system according to an exemplary embodiment of the present inventive concept.FIGS. 3 and 4are diagrams explaining the operation of the SOC system according to an exemplary embodiment of the present inventive concept.

First, referring toFIG. 2, the code area of an execution file is stored in the first area of the storage (e.g., 81) in the form of a binary file (S100). For example, referring toFIG. 3, an execution file 1 includes a header, a code area, a data area, and a BSS area. When such an execution file 1 is stored in the storage80, the code area of the execution file 1 is stored in the first area81of the storage80in a binary form, and the data area and the BSS area are stored in the second area82of the storage80. In an exemplary embodiment, the code area of the execution file 1 has the read-only characteristic that is necessary for the operation of the process71, and the data area and the BSS area of the execution file 1 has the read-write characteristic.

Referring again toFIG. 2, a process to execute the execution file is generated (S110). For example, referring toFIG. 1, the OS (Operating System)70generates the process71that performs the execution of the execution file 1 pre-stored in the storage80using a command that is provided from a user or the like.

Then, referring toFIG. 2, the first area of the storage (e.g., 81) is allocated as a main memory area (S120). For example, referring toFIG. 2, the OS70allocates the first area81of the storage70as an area like that of the main memory10that can be directly accessed by the memory management unit40.

In an alternate embodiment, instead of configuring the first area as a main memory, it is configured as a virtual memory. For example, when the first area81of the storage80is used as the virtual memory, the OS70allocates (configures) the first area81of the storage70as a virtual memory area that can be directly accessed by the TLB (not illustrated).

Referring again toFIG. 2, the execution file is executed by the generated process (S130). For example, referring toFIG. 4, the OS70first requests that the central processing unit60performs the necessary operation (S131). Then, the central processing unit60transmits the virtual address VA of the data that is necessary for the operation to the memory management unit40(S132).

The memory management unit40, which has received the virtual address VA from the central processing unit60, obtains the physical address PA that corresponds to the virtual address VA (S134) with reference to the page table50or the like through the provided virtual address VA (S133). Thereafter, the memory management unit40searches the main memory10and the first area81of the storage80through the physical address PA (S135), and provides the data that is addressed by the physical address PA to the central processing unit60(S136). Then, the central processing unit60performs the operation with the provided data.

In the SOC system according to this embodiment as described above, since the code area having the read-only characteristic that is necessary for the operation of the process71has already been stored in the first area81of the storage80in the form of a binary file, the memory management unit40refers to and provides the code area to the central processing unit60without the necessity of any additional work. Accordingly, a page swap between the main memory10and the storage80, which is performed when the data that is necessary for the operation of the central processing unit60is absent from the main memory10, becomes unnecessary, and thus the operating speed of the SOC system can be improved.

If the first area81of the storage80is implemented by, for example, an MRAM, refresh becomes unnecessary, but a large quantity of write energy and write time are required in writing the data in the MRAM. However, as described above, since the code area having the read-only characteristic is stored in the first area81of the storage80of the SOC system according to this embodiment, an additional write operation rarely or never occurs in the first area81of the storage80, and thus the operational performance of the whole system may not deteriorate even if the storage80is implemented by, for example, the MRAM.

When a new execution file that has not yet been executed is newly stored in the storage80, the memory management unit40may be unable to refer to the new execution file. However, even in this case, the whole SOC system according to this embodiment can operate at high speed by minimizing the execution time that is required for the operation. Hereinafter, referring toFIG. 5, this case will be described in more detail.

FIG. 5is a diagram explaining the operation of a SOC system according to an exemplary embodiment of the present inventive concept.

Referring toFIG. 5, the OS70first requests that the central processing unit60performs an operation of the process71that is related to a new execution file (S200). Then, the central processing unit60transmits the virtual address VA of the data that is necessary for the operation to the memory management unit40(S201).

The memory management unit40, which has received the virtual address VA from the central processing unit60, refers to a page table50through the provided virtual address VA (S202). In this case, since the data that is addressed by the received virtual address VA is not present in the page table50, it is not possible to return the physical address PA that corresponds to the received virtual address VA (S203).

Accordingly, the memory management unit40transfers the control authority to the OS70together with a message notifying that the physical address PA which corresponds to the received virtual address VA is unable to be found (S204). The OS70, which has received the control authority, searches for the code area of the execution file that is newly loaded from the first area81of the storage80based on the virtual address VA which addresses the data that is necessary for the operation (S205), and based on this, updates the page table50(S206).

Once the page table50is updated as described above, the memory management unit40can access the newly added execution file. That is, a separate page swap operation between the main memory10and the storage80becomes unnecessary in the SOC system according to this embodiment. Through this operation, the SOC system according to this embodiment can operate at a higher speed.

Next, referring toFIG. 6, a SOC system according to an exemplary embodiment of the present invention will be described.

FIG. 6is a block diagram illustrating a SOC system according to an exemplary embodiment of the present inventive concept.

Referring toFIG. 6, the SOC system includes a main memory10, an MMU (Memory Management Unit)40, a CPU (Central Processing Unit)60, and a storage90.

In the same manner as the above-described embodiment, the main memory10may store data that is used for the operation of the central processing unit60. For example, when the central processing unit60operates for the execution of the process71by the OS70, the main memory10loads the data that is necessary for the operation from the storage90or the like, and provides the data that is necessary for the operation of the central processing unit60. In an exemplary embodiment of the present inventive concept, the main memory10is implemented by, for example, a DRAM (Dynamic Random Access Memory), an SRAM (Static Random Access Memory), or an embedded RMA, but the present inventive concept is not limited thereto.

The OS70may generate the process71that is necessary for the execution of file data stored in the storage90or the like. The process71generated as above may command the central processing unit60to operate and process the data that is addressed by the VA (Virtual Address), and thus the central processing unit60may provide the virtual address of the data that is necessary for the operation and processing to the memory management unit40.

The memory management unit40, which has received the virtual address from the central processing unit60, converts the virtual address provided from the central processing unit60into a PA (Physical Address) that can be directly referred to on the main memory10or a first area91of the storage90with reference to a page table (not illustrated).

The storage90may be provided with a mass storage space in comparison to the main memory10, and may be implemented by, for example, an MRAM which has both the DRAM characteristic in which electric information can be rapidly taken out and the magnetic recording characteristic in which the information can be kept for a long term, but the present inventive concept is not limited thereto. An example of the storage90implemented by the MRAM may be a SSD (Solid State Drive), but the present inventive concept is not limited thereto.

The storage90may include the first area91and a second area92. In the first area91of the storage90, m (m is a natural number) code areas having the read-only characteristic related to the performance of the process71among the execution files are stored in the form of a binary file. Further, during the initial driving of the SOC system, the memory management unit40according to this embodiment refers to a page table (not illustrated) that is updated so that the central processing unit60directly accesses n (n is a natural number) predetermined execution files among the m execution files.

For example, during the initial driving of the SOC system, regardless of whether the process71related to the m execution files stored in the first area91of the storage90has been generated, the memory management unit40refers to the page table that is updated so that the central processing unit60directly accesses code areas of the n predetermined execution files.

Here, the n execution files may be determined by selecting the program that the user frequently uses through the initial setting of the system, or may be determined by the OS70through reflection of the system operating situation.

As described above, if the page table (not illustrated) that the memory management unit40refers to is updated during the initial driving, the update of the page table (not illustrated) to be performed when the respective execution files are newly performed can be reduced, and thus the operational performance of the SOC system can be further improved.

The second area92of the storage90according to this embodiment may be used in a similar manner as the storage of the general SOC system according to the above-described embodiment. For example, the second area92may store a data area and a BSS area.

Next, referring toFIG. 7, a computing system that includes the main memory and storage of the SOC system according to an exemplary embodiment of the present inventive concept will be described.

FIG. 7is a block diagram illustrating a computing system that includes the main memory and storage of the SOC system according to an exemplary embodiment of the present inventive concept.

Referring toFIG. 7, the computing system101includes a central processing unit100, an AGP (Accelerated Graphics Port) device110, a main memory200, a storage (for example, SSD, HDD, or the like)140, a north bridge120, a south bridge130, a keyboard controller160, and a printer controller150.

The computing system101illustrated inFIG. 7may be a personal computer or a notebook computer. However, the present inventive concept is not limited thereto, and examples of the computing system101may be modified accordingly.

In the computing system101, the central processing unit100, the AGP device110, and the main memory200are connected to the north bridge120. However, the present inventive concept is not limited thereto. For example, the north bridge120may be included within the central processing unit100.

In an exemplary embodiment, the AGP is a bus standard that enables 3D graphic expression to be rapidly implemented, and the AGP device110may include a video card that reproduces a monitor image.

The central processing unit100may perform various kinds of operations that are required to drive the computing system101, and also execute the OS and application programs.

The main memory200may load data that is required to perform the operation of the central processing unit100from the storage140and store the loaded data therein. An example of a memory that implements the main memory200may be a DRAM (Dynamic Random Access Memory), but the present inventive concept is not limited thereto.

The storage140, the keyboard controller160, the printer controller150, and various kinds of peripheral devices (not illustrated) may be connected to the south bridge130.

The storage140is a mass data storage device that stores data, and may be implemented by, for example, HDD or SSD. However, the present inventive concept is not limited thereto. In particular, although the storage140according to this embodiment may be implemented by the MRAM which has both the DRAM characteristic in which electric information can be rapidly taken out and the magnetic recording characteristic in which the information can be kept for a long term, the present inventive concept is not limited thereto.

The storage80may include the first area in which the code area of the execution file having the read-only characteristic is loaded in the form of a binary file, and the second area in which the data area and the BSS area of the execution file are stored in a file structure. That is, the storage (80inFIG. 1or90inFIG. 6) of the SOC system according to the above-described embodiments may be adopted as the storage140included in the computing system101according to this embodiment.

Although it is exemplified that the storage140is connected to the south bridge130in the computing system101according to this embodiment, the present inventive concept is not limited thereto, and the storage140may be modified so that it is connected to the north bridge120or directly connected to the central processing unit100.

Next, referring toFIG. 8, an electronic system that includes the SOC system according to an exemplary embodiment of the present inventive concept will be described.

FIG. 8is a block diagram illustrating the configuration of an electronic system that can include the SOC system according to an exemplary embodiment of the present inventive concept.

Referring toFIG. 8, an electronic system900includes SOC system according to an exemplary embodiment of the present inventive concept as described above. The electronic system900includes a memory system902, a processor904, a RAM906, and a user interface908.

The memory system902, the processor904, the RAM906, and the user interface908perform data communication with each other using a bus910.

The processor904executes programs and controls the electronic system900, and the RAM906may be used as an operating memory of the processor904. Here, if the electronic system900adopts the main memory of the SOC system according to at least one embodiment of the present inventive concept as described above, the processor904may correspond to the central processing unit (60inFIG. 1andFIG. 6) as described above, and the RAM906may correspond to the main memory (10inFIG. 1andFIG. 6). The processor904and the RAM906may be implemented to be packaged into one semiconductor device or a semiconductor package.

The user interface908may be used to input/output data to the electronic system900. The memory system902may store codes for the operation of the processor904, data processed by the processor904, or data input from the outside. If the electronic system900includes the SOC system according to the embodiments of the present invention as described above, the memory system902may correspond to the storage (80inFIGS. 1 and 90inFIG. 6) as described above.

The memory system902may include a separate controller for the operation, and may be configured to additionally include an error correction block. The error correction block may be configured to detect and correct an error of the data stored in the memory system912using an error correction code (ECC).

The memory system902may be integrated into one semiconductor device. Exemplarily, the memory system902may be integrated into one semiconductor device to configure a memory card. For example, the memory system902may be integrated into one semiconductor device to configure a memory card, such as a PC card (PCMCIA (Personal Computer Memory Card International Association)), a compact flash (CF) card, a smart media card (SM or SMC), a memory stick, a multimedia card (MMC, RS-MMC, MMCmicro), a SD card (SD, miniSD, microSD, or SDHC), a universal flash storage device (UFS), or the like.

The electronic system900illustrated inFIG. 8may be applied to electronic control devices of various electronic appliances.FIG. 9is a view illustrating an application example of the electronic system ofFIG. 8applied to a smart phone. In the case where the electronic system (900inFIG. 8) is applied to a smart phone1000, the above-described electronic system (900inFIG. 8) may be, for example, an AP (Application Processor), but the present inventive concept is not limited thereto.

In addition, the electronic system (900inFIG. 8) may be provided as one of various constituent elements of electronic devices, such as a computer, a UMPC (Ultra Mobile PC), a work station, a net-book, a PDA (Personal Digital Assistants), a portable computer, a web tablet, a wireless phone, a mobile phone, a smart phone, an e-book, a PMP (Portable Multimedia Player), a portable game machine, a navigation device, a black box, a digital camera, a 3-dimensional television receiver, a digital audio recorder, a digital audio player, a digital picture recorder, a digital picture player, a digital video recorder, a digital video player, a device that can transmit and receive information in a wireless environment, one of various electronic devices constituting a home network, one of various electronic devices constituting a computer network, one of various electronic devices constituting a telematics network, an RFID (radio frequency identity) device, or one of various constituent elements constituting a computing system.