TWI813455B - Address conversion system and address conversion method - Google Patents

Address conversion system and address conversion method Download PDF

Info

Publication number
TWI813455B
TWI813455B TW111136841A TW111136841A TWI813455B TW I813455 B TWI813455 B TW I813455B TW 111136841 A TW111136841 A TW 111136841A TW 111136841 A TW111136841 A TW 111136841A TW I813455 B TWI813455 B TW I813455B
Authority
TW
Taiwan
Prior art keywords
buffer
virtual
coupler
storage device
algorithm
Prior art date
Application number
TW111136841A
Other languages
Chinese (zh)
Other versions
TW202414226A (en
Inventor
吳國榮
陳羿逞
Original Assignee
瑞昱半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW111136841A priority Critical patent/TWI813455B/en
Priority to US18/320,185 priority patent/US20240104032A1/en
Application granted granted Critical
Publication of TWI813455B publication Critical patent/TWI813455B/en
Publication of TW202414226A publication Critical patent/TW202414226A/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
    • G06F13/1673Details of memory controller using buffers
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Abstract

An address translation conversion includes a storage device, a memory bus and a processor. The processor is configured for executing the following steps according to a plurality of commands of the storage device: creating a real buffer on the storage device; generating a fake buffer in the fake capacity of the storage device by creating a fake buffer algorithm; establishing a coupling relationship between a real buffer and a fake buffer through a coupling algorithm of the memory bus; receiving a compressed data from a first device by the real buffer; when the second device wants to read the fake buffer, a coupler of the memory bus guides the second device to the real buffer through the coupling relationship for reading; transmitting the compressed data of the real buffer to the coupler by the memory bus; decompressing the compressed data into a decompressed data by the coupler.

Description

位址轉換系統及位址轉換方法Address translation system and address translation method

本案係有關於一種轉換系統及轉換方法,且特別是關於一種位址轉換系統及位址轉換方法。This case relates to a conversion system and a conversion method, and in particular to an address conversion system and an address conversion method.

目前,位於系統單晶片(System on a Chip, SOC)上硬體(或元件)間的資料傳送,需要透過在記憶體內設置的緩衝區(Buffer)做中間傳送資料的角色,並透過其他器件協助將資料壓縮及解壓縮,讓兩個不同位址的元件可以傳送資料順利。然而,兩個不同的元件通常需要搭配兩個緩衝區,但兩個緩衝區會消耗記憶體內的資源,造成資源上的浪費,也導致僅僅傳送資料卻造成消耗記憶體內資源的情況。Currently, data transmission between hardware (or components) on a System on a Chip (SOC) requires a buffer (Buffer) set in the memory to play the role of intermediate data transmission, and is assisted by other devices. Compress and decompress data so that two components with different addresses can transmit data smoothly. However, two different components usually require two buffers, but the two buffers will consume resources in the memory, causing a waste of resources. It also leads to the situation that only transmitting data consumes resources in the memory.

發明內容旨在提供本揭示內容的簡化摘要,以使閱讀者對本揭示內容具備基本的理解。此發明內容並非本揭示內容的完整概述,且其用意並非在指出本案實施例的重要/關鍵元件或界定本案的範圍。This summary is intended to provide a simplified summary of the disclosure to provide the reader with a basic understanding of the disclosure. This summary is not an extensive overview of the disclosure, and it is not intended to identify key/critical elements of the embodiments or to delineate the scope of the disclosure.

本案內容之一技術態樣係關於一種位址轉換系統。位址轉換系統包含儲存裝置、記憶器匯流排及處理器。記憶器匯流排用以將第一裝置耦合至第二裝置。處理器用以根據儲存裝置的複數個指令以執行以下步驟:於儲存裝置產生實體緩衝區;透過虛擬緩衝區演算法於儲存裝置的虛擬容量中產生虛擬緩衝區;藉由記憶器匯流排的耦合器透過耦合演算法建立實體緩衝區與虛擬緩衝區的耦合關係;藉由實體緩衝區從第一裝置接受壓縮資料;當第二裝置欲讀取虛擬緩衝區時,藉由耦合器透過耦合關係導引第二裝置至實體緩衝區進行讀取;藉由記憶器匯流排將實體緩衝區的壓縮資料傳送至耦合器;藉由耦合器將壓縮資料解壓縮為解壓縮資料;以及藉由記憶器匯流排將解壓縮資料傳送至第二裝置。One of the technical aspects of this case relates to an address translation system. The address translation system includes storage devices, memory buses, and processors. A memory bus is used to couple a first device to a second device. The processor is used to perform the following steps according to a plurality of instructions of the storage device: generate a physical buffer in the storage device; generate a virtual buffer in the virtual capacity of the storage device through a virtual buffer algorithm; use a coupler of the memory bus Establish a coupling relationship between the physical buffer and the virtual buffer through a coupling algorithm; use the physical buffer to receive compressed data from the first device; when the second device wants to read the virtual buffer, use the coupler to guide through the coupling relationship The second device reads the physical buffer; transmits the compressed data of the physical buffer to the coupler through the memory bus; decompresses the compressed data into decompressed data through the coupler; and uses the memory bus Transfer the decompressed data to the second device.

本案內容之另一技術態樣係關於一種位址轉換方法。位址轉換方法包含:於儲存裝置產生實體緩衝區;透過虛擬緩衝區演算法於儲存裝置的虛擬容量中產生虛擬緩衝區;藉由記憶器匯流排透過耦合演算法建立實體緩衝區與虛擬緩衝區的耦合關係;藉由實體緩衝區從第一裝置接受壓縮資料;當第二裝置欲讀取虛擬緩衝區時,藉由耦合器透過耦合關係導引第二裝置至實體緩衝區進行讀取;藉由記憶器匯流排將實體緩衝區的壓縮資料傳送至耦合器;藉由耦合器將壓縮資料解壓縮為解壓縮資料;以及藉由記憶器匯流排將解壓縮資料傳送至第二裝置。Another technical aspect of this case relates to an address translation method. The address translation method includes: generating a physical buffer in the storage device; generating a virtual buffer in the virtual capacity of the storage device through a virtual buffer algorithm; using the memory bus to create a physical buffer and a virtual buffer through a coupling algorithm The coupling relationship; receiving compressed data from the first device through the physical buffer; when the second device wants to read the virtual buffer, the coupler guides the second device to the physical buffer for reading through the coupling relationship; borrow The compressed data in the physical buffer is transmitted to the coupler through the memory bus; the compressed data is decompressed into decompressed data through the coupler; and the decompressed data is transmitted to the second device through the memory bus.

因此,根據本案之技術內容,本案實施例所示之位址轉換系統及位址轉換方法得以降低記憶體內資源之消耗,以達到兩個不同位址的硬體傳遞資料的效果。Therefore, according to the technical content of this case, the address translation system and address translation method shown in the embodiment of this case can reduce the consumption of resources in the memory, so as to achieve the effect of transferring data between two hardwares with different addresses.

在參閱下文實施方式後,本案所屬技術領域中具有通常知識者當可輕易瞭解本案之基本精神及其他發明目的,以及本案所採用之技術手段與實施態樣。After referring to the following embodiments, those with ordinary knowledge in the technical field to which this case belongs can easily understand the basic spirit and other purposes of the invention, as well as the technical means and implementation styles adopted in this case.

為了使本揭示內容的敘述更加詳盡與完備,下文針對了本案的實施態樣與具體實施例提出了說明性的描述;但這並非實施或運用本案具體實施例的唯一形式。實施方式中涵蓋了多個具體實施例的特徵以及用以建構與操作這些具體實施例的方法步驟與其順序。然而,亦可利用其他具體實施例來達成相同或均等的功能與步驟順序。In order to make the description of this disclosure more detailed and complete, the following provides an illustrative description of the implementation aspects and specific embodiments of this case; but this is not the only form of implementing or using the specific embodiments of this case. The embodiments cover features of multiple specific embodiments as well as method steps and their sequences for constructing and operating these specific embodiments. However, other specific embodiments may also be used to achieve the same or equivalent functions and step sequences.

除非本說明書另有定義,此處所用的科學與技術詞彙之含義與本案所屬技術領域中具有通常知識者所理解與慣用的意義相同。此外,在不和上下文衝突的情形下,本說明書所用的單數名詞涵蓋該名詞的複數型;而所用的複數名詞時亦涵蓋該名詞的單數型。Unless otherwise defined in this specification, the scientific and technical terms used herein have the same meanings as commonly understood and customary by a person with ordinary knowledge in the technical field to which the subject matter belongs. In addition, unless there is conflict with the context, the singular noun used in this specification covers the plural form of the noun; and the plural noun used also covers the singular form of the noun.

另外,關於本文中所使用之「耦接」或「連接」,可指二或多個元件相互直接作實體或電性接觸,或是相互間接作實體或電性接觸,亦可指二或多個元件相互操作或動作。In addition, as used herein, "coupling" or "connection" may refer to two or more components that are in direct physical or electrical contact with each other, or that are in indirect physical or electrical contact with each other, or it may also refer to two or more components that are in direct physical or electrical contact with each other. components interact or act with each other.

在說明書及申請專利範圍中使用了某些詞彙來指稱特定的元件。然而,所屬技術領域中具有通常知識者應可理解,同樣的元件可能會用不同的名詞來稱呼。說明書及申請專利範圍並不以名稱的差異做為區分元件的方式,而是以元件在功能上的差異來做為區分的基準。在說明書及申請專利範圍所提及的「包含」為開放式的用語,故應解釋成「包含但不限定於」。Certain words are used in the specification and patent claims to refer to specific components. However, those with ordinary skill in the art will understand that the same components may be referred to by different names. The specification and the patent application do not use the difference in name as a way to distinguish components, but the difference in function of the components as the basis for differentiation. The "include" mentioned in the specification and the scope of the patent application is an open-ended term, so it should be interpreted as "include but not limited to".

第1圖係依照本案一實施例繪示一種位址轉換系統的方塊示意圖。如圖所示,位址轉換系統100包含儲存裝置110、記憶器匯流排120及處理器130。於連接關係,儲存裝置110耦接於記憶器匯流排120,記憶器匯流排120耦接於處理器130。Figure 1 is a schematic block diagram of an address translation system according to an embodiment of the present invention. As shown in the figure, the address translation system 100 includes a storage device 110, a memory bus 120 and a processor 130. In connection relationship, the storage device 110 is coupled to the memory bus 120 , and the memory bus 120 is coupled to the processor 130 .

為降低消耗記憶體內資源之消耗,以達到兩個不同位址的硬體傳遞資料的效果,本案提供如第1圖所示之位址轉換系統100,其相關操作詳細說明如後。In order to reduce the consumption of memory resources and achieve the effect of transferring data between two hardwares with different addresses, this project provides an address conversion system 100 as shown in Figure 1, and its related operations are described in detail below.

在一實施例中,記憶器匯流排120的耦合器121用以將第一裝置900耦合至第二裝置910。在一實施例中,處理器130用以根據儲存裝置110的複數個指令以執行以下步驟:於儲存裝置110產生實體緩衝區111;透過虛擬緩衝區演算法於儲存裝置110的虛擬容量中產生虛擬緩衝區113;藉由記憶器匯流排120的耦合器121透過耦合演算法建立實體緩衝區111與虛擬緩衝區113的耦合關係;藉由實體緩衝區111從第一裝置900接受壓縮資料;當第二裝置910欲讀取虛擬緩衝區113時,藉由耦合器121透過耦合關係導引第二裝置910至實體緩衝區111進行讀取;藉由記憶器匯流排120將實體緩衝區111的壓縮資料傳送至耦合器121;藉由耦合器121將壓縮資料解壓縮為解壓縮資料;以及藉由記憶器匯流排120將解壓縮資料傳送至第二裝置910。In one embodiment, the coupler 121 of the memory bus 120 is used to couple the first device 900 to the second device 910 . In one embodiment, the processor 130 is used to perform the following steps according to a plurality of instructions of the storage device 110: generate a physical buffer 111 in the storage device 110; generate a virtual buffer 111 in the virtual capacity of the storage device 110 through a virtual buffer algorithm. Buffer 113; establish a coupling relationship between the physical buffer 111 and the virtual buffer 113 through the coupling algorithm through the coupler 121 of the memory bus 120; receive compressed data from the first device 900 through the physical buffer 111; when the When the two devices 910 want to read the virtual buffer 113, the coupler 121 guides the second device 910 to the physical buffer 111 for reading through the coupling relationship; the memory bus 120 compresses the compressed data of the physical buffer 111. transmitted to the coupler 121; decompressing the compressed data into decompressed data through the coupler 121; and transmitting the decompressed data to the second device 910 through the memory bus 120.

為使位址轉換系統100之上述操作易於理解,請一併參閱第2圖,第2圖係依照本案一實施例繪示一種位址轉換系統之處理器的方塊示意圖。In order to make the above operations of the address translation system 100 easy to understand, please also refer to Figure 2 . Figure 2 is a block diagram of a processor of an address translation system according to an embodiment of the present invention.

請一併參閱第1圖,於操作上,在一實施例中,記憶器匯流排120的耦合器121用以將第一裝置900耦合至第二裝置910。舉例而言,記憶器匯流排120的耦合器121可以用以將第一裝置900映射(mapping)、結合(bind)或耦合(coupling)至第二裝置910。在一些實施例中,第一裝置900可以包含一位址,第二裝置910可以包含另一位址,記憶器匯流排120的耦合器121可以用以將第一裝置900的位址映射、結合或耦合至第二裝置910的另一位址,但本案不以此為限。Please also refer to FIG. 1 . In operation, in one embodiment, the coupler 121 of the memory bus 120 is used to couple the first device 900 to the second device 910 . For example, the coupler 121 of the memory bus 120 may be used to map, bind, or couple the first device 900 to the second device 910 . In some embodiments, the first device 900 may contain one address, the second device 910 may contain another address, and the coupler 121 of the memory bus 120 may be used to map and combine the addresses of the first device 900 Or coupled to another address of the second device 910, but this case is not limited to this.

此外,在一些實施例中,第一裝置900可以為自製產品(In-house IP),即為自家公司生產的元件,此外,第一裝置900也可以為影像解碼器(video decoder)。第二裝置910可以為外購產品(Vendor IP),即為外購其他公司生產的元件,此外,第二裝置910也可以為圖形處理器(Graphics Processing Unit, GPU),但本案不以此為限。在一些實施例中,第一裝置900及第二裝置910可以位於系統單晶片(System on a Chip, SOC)上,但本案不以此為限。在一些實施例中,第一裝置900也可以為圖形處理器(Graphics Processing Unit, GPU),第二裝置910也可以為影像解碼器(video decoder),此時記憶器匯流排120可以具有解壓縮圖形處理器中資料的設計(Design)或功能(Function),但本案不以此為限。In addition, in some embodiments, the first device 900 may be an in-house IP, that is, a component produced by the own company. In addition, the first device 900 may also be a video decoder. The second device 910 can be an outsourced product (Vendor IP), that is, a component produced by an outsourced company. In addition, the second device 910 can also be a graphics processor (Graphics Processing Unit, GPU), but this case does not apply. limit. In some embodiments, the first device 900 and the second device 910 may be located on a system on a chip (SOC), but the present case is not limited to this. In some embodiments, the first device 900 can also be a graphics processing unit (GPU), and the second device 910 can also be a video decoder. In this case, the memory bus 120 can have a decompression function. The design (Design) or function (Function) of the data in the graphics processor, but this case is not limited to this.

在一些實施例中,處理器130用以根據儲存裝置110的複數個指令以執行以下步驟:於儲存裝置110產生實體緩衝區111。舉例而言,儲存裝置110可以為容量4GB的雙倍資料率同步動態隨機存取記憶體(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM,以下簡稱為DDR),實體緩衝區111可以位於儲存裝置110 的0~4GB中,換句話說,實體緩衝區111可以使用的資源為0~4GB,但本案不以此為限。In some embodiments, the processor 130 is configured to perform the following steps according to a plurality of instructions from the storage device 110: generating the physical buffer 111 in the storage device 110. For example, the storage device 110 can be a Double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM, hereinafter referred to as DDR) with a capacity of 4GB, and the physical buffer 111 can be located in the storage device. Among the 0~4GB of 110, in other words, the resources that can be used by the physical buffer 111 are 0~4GB, but this case is not limited to this.

請參閱第2圖,在一實施例中,處理器130可以包含記憶體分配器(memory allocator),並用以於儲存裝置110產生實體緩衝區111及虛擬緩衝區113,但本案不以此為限。在一些實施例中,記憶體分配器( memory allocator)130可以為第三演算法135A(例如:甲半導體記憶體管理(RXX dvrMemory Manager)演算法,如第2圖所示),且第三演算法135A(例如:甲半導體記憶體管理(RXX dvrMemory Manager)演算法)135A可以為基於Linux作業系統上,甲半導體(RXX)公司所開發的軟體模組,但本案不以此為限。Please refer to Figure 2. In one embodiment, the processor 130 may include a memory allocator and be used to generate the physical buffer 111 and the virtual buffer 113 for the storage device 110, but this case is not limited to this. . In some embodiments, the memory allocator 130 may be a third algorithm 135A (for example: a semiconductor memory management (RXX dvrMemory Manager) algorithm, as shown in Figure 2 ), and the third algorithm Method 135A (for example: Semiconductor A's memory management (RXX dvrMemory Manager) algorithm) 135A can be a software module developed by Semiconductor A (RXX) Company based on the Linux operating system, but this case is not limited to this.

然後,處理器130透過虛擬緩衝區演算法於儲存裝置110的虛擬容量中產生虛擬緩衝區113。舉例而言,虛擬緩衝區演算法可以為第一演算法131A(例如:Linux系統核心(Linux kernel)演算法,如第2圖所示),虛擬容量可以為虛擬地址空間(fake address space),虛擬緩衝區113可以為稀疏記憶體(Sparse Memory)區塊113,換句話說,處理器130可以於第一演算法131A(例如:Linux系統核心(Linux kernel)演算法)註冊稀疏記憶體(Sparse Memory)區塊113,但本案不以此為限。Then, the processor 130 generates a virtual buffer 113 in the virtual capacity of the storage device 110 through a virtual buffer algorithm. For example, the virtual buffer algorithm can be the first algorithm 131A (for example: the Linux kernel algorithm, as shown in Figure 2), and the virtual capacity can be the virtual address space (fake address space), The virtual buffer 113 may be a sparse memory (Sparse Memory) block 113. In other words, the processor 130 may register the sparse memory (Sparse Memory) in the first algorithm 131A (for example, the Linux kernel algorithm). Memory) block 113, but this case is not limited to this.

在一些實施例中,儲存裝置110的總容量可以為4GB,實體緩衝區111可以為第一緩衝器(Buffer 1),虛擬緩衝區113可以為第二緩衝器(Buffer 2),第二緩衝器(Buffer 2)可以為稀疏記憶體(Sparse Memory)區塊113,處理器130可以透過虛擬緩衝區演算法於儲存裝置110產生虛擬地址空間(fake address space),第一緩衝器(Buffer 1)可以使用儲存裝置110 的0~4GB區域,而稀疏記憶體(Sparse Memory)區塊113則使用虛擬地址空間(fake address space)中的4~5GB區域(對於儲存裝置110而言,實際上不存在),然而,稀疏記憶體(Sparse Memory)區塊113具有核心分頁結構(kernel pages structure)特性,故對第二裝置910而言,稀疏記憶體(Sparse Memory)區塊113可以視為實際存在的記憶體(physical memory),但本案不以此為限。故位址轉換系統100不須為將第一裝置900耦接於第二裝置910而增加硬體(例如:額外的記憶體容量)或資源。In some embodiments, the total capacity of the storage device 110 may be 4GB, the physical buffer 111 may be the first buffer (Buffer 1), the virtual buffer 113 may be the second buffer (Buffer 2), and the second buffer (Buffer 2) can be a sparse memory (Sparse Memory) block 113. The processor 130 can generate a virtual address space (fake address space) in the storage device 110 through a virtual buffer algorithm. The first buffer (Buffer 1) can The 0~4GB area of the storage device 110 is used, while the sparse memory block 113 uses the 4~5GB area in the virtual address space (fake address space) (which does not actually exist for the storage device 110) , however, the sparse memory (Sparse Memory) block 113 has kernel pages structure characteristics, so for the second device 910, the sparse memory (Sparse Memory) block 113 can be regarded as an actual existing memory. physical memory, but this case is not limited to this. Therefore, the address translation system 100 does not need to add hardware (eg, additional memory capacity) or resources to couple the first device 900 to the second device 910 .

在一些實施例中,實體緩衝區111可以為第一緩衝器(Buffer 1),虛擬緩衝區113可以為第二緩衝器(Buffer 2),而第一緩衝器(Buffer 1)及第二緩衝器(Buffer 2)的總數量可以為12塊,當然第一緩衝器(Buffer 1)及第二緩衝器(Buffer 2)的總數量可以更多或更少,但本案不以此為限。In some embodiments, the physical buffer 111 may be the first buffer (Buffer 1), the virtual buffer 113 may be the second buffer (Buffer 2), and the first buffer (Buffer 1) and the second buffer The total number of (Buffer 2) can be 12 blocks. Of course, the total number of the first buffer (Buffer 1) and the second buffer (Buffer 2) can be more or less, but this case is not limited to this.

再來,藉由記憶器匯流排120的耦合器121透過耦合演算法建立實體緩衝區111與虛擬緩衝區113的耦合關係。舉例而言,記憶器匯流排120可以包含匯流偵測轉換器(MonitorWrapper)121,且匯流偵測轉換器(MonitorWrapper)121可以透過耦合演算法以將緩衝區111的第一位址耦合於虛擬緩衝區113的第二位址,但本案不以此為限。Next, the coupling relationship between the physical buffer 111 and the virtual buffer 113 is established through the coupling algorithm through the coupler 121 of the memory bus 120 . For example, the memory bus 120 may include a bus detection switch (MonitorWrapper) 121, and the bus detection switch (MonitorWrapper) 121 may couple the first address of the buffer 111 to the virtual buffer through a coupling algorithm. The second address of District 113, but this case is not limited to this.

然後,藉由實體緩衝區111從第一裝置900接受壓縮資料。舉例而言,第一裝置900可為自製產品(In-house IP)900,其可以輸出壓縮資料(compressed data),壓縮資料可以寫入實體緩衝區111,但本案不以此為限。Then, compressed data is received from the first device 900 through the physical buffer 111 . For example, the first device 900 can be a home-made product (In-house IP) 900, which can output compressed data, and the compressed data can be written into the physical buffer 111, but this case is not limited to this.

再來,當第二裝置910欲讀取虛擬緩衝區113時,藉由耦合器121透過耦合關係導引第二裝置910至實體緩衝區111進行讀取。舉例而言,第二裝置910可為外購產品(Vendor IP )910,且記憶器匯流排120可以包含匯流偵測轉換器(MonitorWrapper)121,當外購產品(Vendor IP)910欲讀取虛擬緩衝區113時,可以藉由匯流偵測轉換器(MonitorWrapper)121透過耦合關係導引外購產品(Vendor IP) 910至實體緩衝區111進行讀取,但本案不以此為限。Next, when the second device 910 wants to read the virtual buffer 113, the coupler 121 guides the second device 910 to the physical buffer 111 for reading through the coupling relationship. For example, the second device 910 can be an outsourced product (Vendor IP) 910, and the memory bus 120 can include a bus detection converter (MonitorWrapper) 121. When the outsourced product (Vendor IP) 910 wants to read the virtual When buffer 113 is reached, the monitoring converter (MonitorWrapper) 121 can be used to guide the outsourced product (Vendor IP) 910 to the physical buffer 111 for reading through the coupling relationship, but this case is not limited to this.

隨後,藉由記憶器匯流排120將實體緩衝區111的壓縮資料傳送至耦合器121。然後,藉由記憶器匯流排120將壓縮資料解壓縮為解壓縮資料。再來,藉由記憶器匯流排120將解壓縮資料傳送至第二裝置910。舉例而言,緩衝區111可以將壓縮資料(compressed data)傳送至耦合器121,耦合器121可以接受壓縮資料後,耦合器121將壓縮資料解壓縮為解壓縮資料(decompressed data),然後,記憶器匯流排120將解壓縮資料傳送至第二裝置910,但本案不以此為限。Subsequently, the compressed data in the physical buffer 111 is transmitted to the coupler 121 through the memory bus 120 . Then, the compressed data is decompressed into decompressed data through the memory bus 120 . Next, the decompressed data is sent to the second device 910 through the memory bus 120 . For example, the buffer 111 can transmit compressed data to the coupler 121. After the coupler 121 can receive the compressed data, the coupler 121 decompresses the compressed data into decompressed data, and then stores the compressed data. The device bus 120 transmits the decompressed data to the second device 910, but this case is not limited to this.

在一些實施例中,處理器130更用以根據儲存裝置110的複數指令以執行以下步驟:藉由第一裝置900傳送生成緩衝區指令;以及根據生成緩衝區指令以透過緩衝區演算法於儲存裝置110產生實體緩衝區111。舉例而言,實體緩衝區111可以為第一緩衝器(Buffer 1),生成緩衝區指令可以為緩衝器輸出請求(request output Buffer)指令,但本案不以此為限。In some embodiments, the processor 130 is further configured to perform the following steps according to the plurality of instructions from the storage device 110: transmit a generate buffer instruction through the first device 900; and use a buffer algorithm to store the buffer according to the generate buffer instruction. Device 110 generates physical buffer 111. For example, the physical buffer 111 can be the first buffer (Buffer 1), and the buffer generation instruction can be a buffer output request (request output Buffer) instruction, but this case is not limited to this.

在一些實施例中,處理器130更用以根據儲存裝置110的複數指令以執行以下步驟:傳送返回緩衝區指令至第一裝置900;以及藉由第二裝置910傳送生成虛擬緩衝區指令。舉例而言,返回緩衝區指令可以為返回第一緩衝器(return Buffer 1)指令,生成虛擬緩衝區指令可以為緩衝器輸入請求(request input Buffer)指令,但本案不以此為限。In some embodiments, the processor 130 is further configured to perform the following steps according to the plurality of instructions of the storage device 110: transmitting a return buffer instruction to the first device 900; and transmitting a generate virtual buffer instruction through the second device 910. For example, the return buffer instruction can be a return buffer 1 instruction, and the virtual buffer generation instruction can be a buffer input request (request input Buffer) instruction, but this case is not limited to this.

在一些實施例中,處理器130更用以根據儲存裝置110的複數指令以執行以下步驟:根據生成虛擬緩衝區指令以透過虛擬緩衝區演算法於儲存裝置110的虛擬容量中產生虛擬緩衝區113。舉例而言,處理器130可以根據虛擬緩衝區指令(例如:緩衝器輸入請求(request input Buffer)指令)以透過虛擬緩衝區演算法(例如:Linux系統核心(Linux kernel)演算法) 於儲存裝置110的虛擬容量(例如fake address space)中產生虛擬緩衝區113(例如:第二緩衝器(Buffer 2)),但本案不以此為限。In some embodiments, the processor 130 is further configured to perform the following steps according to the plurality of instructions of the storage device 110: according to the generate virtual buffer instruction, generate the virtual buffer 113 in the virtual capacity of the storage device 110 through the virtual buffer algorithm. . For example, the processor 130 may use a virtual buffer algorithm (eg, a Linux kernel algorithm) in the storage device according to a virtual buffer instruction (eg, a request input buffer instruction). A virtual buffer 113 (for example: second buffer (Buffer 2)) is generated in the virtual capacity of 110 (for example, fake address space), but this case is not limited to this.

在一些實施例中,處理器130更用以根據儲存裝置110的複數指令以執行以下步驟:輸出耦合指令至記憶器匯流排120的耦合器121;以及藉由耦合器121根據耦合指令以透過耦合演算法將實體緩衝區111的第一位址耦合於虛擬緩衝區113的第二位址。舉例而言,耦合指令可以為分配虛擬第二緩衝器(allocate fake Buffer 2)指令,耦合指令寫入記憶器匯流排120的耦合器121(例如:匯流偵測轉換器(MonitorWrapper)121)用以將虛擬緩衝區113(例如:第二緩衝器(Buffer 2))的第二位址映射(mapping)、結合(bind)或耦合(coupling)至實體緩衝區111(例如:第一緩衝器(Buffer 1))的第一位址,但本案不以此為限。In some embodiments, the processor 130 is further configured to perform the following steps according to the plurality of instructions of the storage device 110: outputting the coupling instruction to the coupler 121 of the memory bus 120; and using the coupler 121 to couple according to the coupling instruction. The algorithm couples the first address of the physical buffer 111 to the second address of the virtual buffer 113 . For example, the coupling instruction may be an allocate fake Buffer 2 instruction. The coupling instruction is written to the coupler 121 (for example, the bus detection converter (MonitorWrapper) 121) of the memory bus 120 to Mapping, binding or coupling the second address of the virtual buffer 113 (for example: the second buffer (Buffer 2)) to the physical buffer 111 (for example: the first buffer (Buffer 2)) 1)), but this case is not limited to this.

在一些實施例中,耦合演算法可以為匯流偵測轉換器(MonitorWrapper)121用以即時(real-time)的監督第二裝置910的位址(例如:讀取位置(read address))。當起始位址(read address)落在虛擬緩衝區113的第二位址(例如:第二緩衝器(Buffer 2)的起始位址(start address)、結束位址(end address)之間),則將讀取位址(read address)進行第一轉換(例如:零階位址轉換(Level-0 address translator))以將讀取位址(read address)轉換為第一緩衝器(Buffer 1)相對應的位址(例如:第一緩衝器讀取位址(Buffer 1_read_address))。In some embodiments, the coupling algorithm can be used by the sink detection switch (MonitorWrapper) 121 to monitor the address (eg, read address) of the second device 910 in real-time. When the start address (read address) falls between the second address of the virtual buffer 113 (for example: the start address (start address) and the end address (end address) of the second buffer (Buffer 2) ), the read address (read address) is subjected to a first conversion (for example: Level-0 address translator) to convert the read address (read address) into a first buffer (Buffer 1) The corresponding address (for example: the first buffer read address (Buffer 1_read_address)).

然後,將第一緩衝器讀取位址(Buffer 1_read_address)進行第二轉換(例如:第一階轉換(Level-1 translator))以取得第一緩衝器(Buffer 1)相對應的資料偏移(例如:第一緩衝器偏移位址(Buffer 1_offset_address))及第一快取(例如:首標快取(header cache))。此外,第一快取(例如:首標快取(header cache))可以生成第二快取(例如:解壓縮資料快取(Decompressor/data cache))。Then, perform a second conversion (for example: first-level conversion (Level-1 translator)) on the first buffer read address (Buffer 1_read_address) to obtain the corresponding data offset of the first buffer (Buffer 1) ( For example: the first buffer offset address (Buffer 1_offset_address)) and the first cache (for example: header cache). In addition, a first cache (eg, header cache) can generate a second cache (eg, decompressor/data cache).

再來,儲存裝置110的介面(例如:記憶體界面(DDR interface))接收第一緩衝器偏移位址(Buffer 1_offset_address)及解壓縮資料快取(Decompressor/data cache)後,記憶體界面(DDR interface)根據解壓縮資料快取(Decompressor/data cache)以驅動匯流偵測轉換器(MonitorWrapper)121將第一裝置900(例如:自製產品(In-house IP))的壓縮資料解壓縮為解壓縮資料(decompress data)。然後,匯流偵測轉換器(MonitorWrapper)121將解壓縮資料傳送至第二裝置910(例如:外購產品(Vendor IP)),但本案不以此為限。Next, after the interface of the storage device 110 (for example, the memory interface (DDR interface)) receives the first buffer offset address (Buffer 1_offset_address) and the decompressed data cache (Decompressor/data cache), the memory interface ( DDR interface) drives the monitoring converter (MonitorWrapper) 121 to decompress the compressed data of the first device 900 (for example: home-made product (In-house IP)) according to the decompressed data cache (Decompressor/data cache). Decompress data. Then, the monitoring converter (MonitorWrapper) 121 transmits the decompressed data to the second device 910 (for example, an outsourced product (Vendor IP)), but this case is not limited to this.

在一些實施例中,處理器130更用以根據儲存裝置110的複數指令以執行以下步驟:傳送返回虛擬緩衝區指令至第二裝置910。舉例而言,返回虛擬緩衝區指令可以為返回第二緩衝器(return Buffer 2)指令,但本案不以此為限。In some embodiments, the processor 130 is further configured to perform the following steps according to the plurality of instructions of the storage device 110: transmitting a return virtual buffer instruction to the second device 910. For example, the instruction to return the virtual buffer can be an instruction to return the second buffer (return Buffer 2), but this case is not limited to this.

在一些實施例中,處理器130更用以根據儲存裝置110的複數指令以執行以下步驟:第一裝置900根據返回緩衝區指令以將壓縮資料傳送至實體緩衝區111。舉例而言,第一裝置900可以根據返回第一緩衝器(return Buffer 1)指令以將壓縮資料傳送至第一緩衝器(Buffer 1),但本案不以此為限。In some embodiments, the processor 130 is further configured to perform the following steps according to the plurality of instructions of the storage device 110: the first device 900 transmits the compressed data to the physical buffer 111 according to the return buffer instruction. For example, the first device 900 can transmit the compressed data to the first buffer (Buffer 1) according to the return Buffer 1 instruction, but the present case is not limited to this.

在一些實施例中,處理器130更用以根據儲存裝置110的複數指令以執行以下步驟:藉由第二裝置910根據返回虛擬緩衝區指令以傳送讀取資料指令至記憶器匯流排120;以及藉由耦合器121確認是否從第二裝置910接收虛擬讀取資料指令。舉例而言,讀取資料指令可以為從第二緩衝器讀取資料(read data from Buffer 2)指令,虛擬讀取資料指令可以為虛擬讀取資料器(faked read trigger )指令,第二裝置910可以根據返回第二緩衝器(return Buffer 2)指令以傳送從第二緩衝器讀取資料(read data from Buffer 2)指令至記憶器匯流排120,且耦合器121可以進一步辨識從第二裝置910輸出的第二緩衝器讀取資料(read data from Buffer 2)指令是否為虛擬讀取觸發器(faked read trigger) 指令,但本案不以此為限。In some embodiments, the processor 130 is further configured to perform the following steps according to the plurality of instructions from the storage device 110: sending a read data instruction to the memory bus 120 through the second device 910 according to the return virtual buffer instruction; and Whether the virtual read data command is received from the second device 910 is confirmed through the coupler 121 . For example, the read data command may be a read data from Buffer 2 command, and the virtual read data command may be a fake read trigger command. The second device 910 A read data from Buffer 2 command can be sent to the memory bus 120 according to a return Buffer 2 command, and the coupler 121 can further identify the data from the second device 910 Whether the output read data from Buffer 2 command is a fake read trigger command, but this case is not limited to this.

在一些實施例中,處理器130更用以根據儲存裝置110的複數指令以執行以下步驟:藉由耦合器121確認有從第二裝置910接收虛擬讀取資料指令以傳送讀取緩衝區指令至實體緩衝區111;以及藉由實體緩衝區111根據讀取緩衝區指令以將壓縮資料傳送至耦合器121。舉例而言,讀取緩衝區指令可以為從第一緩衝器讀取請求(request read from Buffer 1)指令,耦合器121可以或辨識從第二裝置910輸出的第二緩衝器讀取資料(read data from Buffer 2)指令為虛擬讀取觸發器(faked read trigger) 指令,且耦合器121可以接著傳送從第一緩衝器讀取請求(request read from Buffer 1)指令至實體緩衝區111,實體緩衝區111根據從第一緩衝器讀取請求(request read from Buffer 1)指令以將壓縮資料傳送至耦合器121。然後,耦合器121可以將壓縮資料解壓縮為解壓縮資料。再來,記憶器匯流排120可以將解壓縮資料傳送至第二裝置910,但本案不以此為限。In some embodiments, the processor 130 is further configured to perform the following steps according to the plurality of instructions of the storage device 110: confirming that a virtual read data instruction is received from the second device 910 through the coupler 121 to send a read buffer instruction to the physical buffer 111; and transmit the compressed data to the coupler 121 through the physical buffer 111 according to the read buffer instruction. For example, the read buffer instruction may be a request read from Buffer 1 instruction, and the coupler 121 may recognize the second buffer read data output from the second device 910 (read The data from Buffer 2) instruction is a faked read trigger instruction, and the coupler 121 can then transmit a read request from the first buffer (request read from Buffer 1) instruction to the physical buffer 111, and the physical buffer The zone 111 transmits the compressed data to the coupler 121 according to the request read from Buffer 1 instruction. Coupler 121 may then decompress the compressed data into decompressed data. Next, the memory bus 120 can transmit the decompressed data to the second device 910, but this case is not limited to this.

在一些實施例中,虛擬緩衝區演算法包含Linux演算法,且耦合器121包含解壓縮器。舉例而言,虛擬緩衝區演算法可以與第一演算法131A(例如:Linux系統核心(Linux kernel),如第2圖所示)相關的演算法技術,解壓縮器可以為任何泛指實體或軟體上的解壓縮器(Decompressor),耦合器121可以包含匯流偵測轉換器(MonitorWrapper)及解壓縮器(Decompressor),但本案不以此為限。In some embodiments, the virtual buffer algorithm includes a Linux algorithm and coupler 121 includes a decompressor. For example, the virtual buffer algorithm may be an algorithm technology related to the first algorithm 131A (for example: Linux kernel, as shown in Figure 2), and the decompressor may be any generic entity or As a software decompressor, the coupler 121 may include a monitoring converter (MonitorWrapper) and a decompressor (Decompressor), but this case is not limited to this.

請參閱第2圖,在一些實施例中,處理器130包含複數個演算法。舉例而言,處理器130可以包含第一演算法131A、第二演算法133A及第三演算法135A,第一演算法131A可以為Linux系統核心頁面(Linux kernel pages)演算法,第二演算法133A可以為稀疏記憶體(Sparse Memory)演算法,第三演算法135A可以為甲半導體記憶體管理(RXX dvrMemory Manager)演算法,且甲半導體記憶體管理(RXX dvrMemory Manager)演算法可以為基於Linux作業系統上,甲半導體半導體(RXX)公司開發的軟體模組,換句話說,甲半導體記憶體管理(RXX dvrMemory Manager)演算法可以為底層使用Linux系統核心(Linux kernel)的稀疏記憶體(Sparse Memory)技術與甲半導體半導體(RXX)公司開發的記憶體管理模式,但本案不以此為限。Referring to Figure 2, in some embodiments, the processor 130 includes a plurality of algorithms. For example, the processor 130 may include a first algorithm 131A, a second algorithm 133A, and a third algorithm 135A. The first algorithm 131A may be a Linux kernel pages algorithm, and the second algorithm 131A may be a Linux kernel pages algorithm. 133A may be a sparse memory (Sparse Memory) algorithm, the third algorithm 135A may be a semiconductor memory management (RXX dvrMemory Manager) algorithm, and a semiconductor memory management (RXX dvrMemory Manager) algorithm may be based on Linux On the operating system, a software module developed by A Semiconductor Semiconductor (RXX), in other words, A Semiconductor's memory management (RXX dvrMemory Manager) algorithm can provide the underlying Sparse memory (Sparse) using the Linux system core (Linux kernel). Memory) technology and the memory management model developed by RXX Semiconductor Company, but this case is not limited to this.

在一些實施例中,儲存裝置110可以包含第一演算法131A、第二演算法133A及第三演算法135A(圖中未示)。舉例而言,第一演算法131A可以為Linux系統核心頁面(Linux kernel pages)演算法,第二演算法133A可以為稀疏記憶體(Sparse Memory)演算法,第三演算法135A可以為甲半導體記憶體管理(RXX dvrMemory Manager)演算法,但本案不以此為限。In some embodiments, the storage device 110 may include a first algorithm 131A, a second algorithm 133A, and a third algorithm 135A (not shown in the figure). For example, the first algorithm 131A can be a Linux kernel pages algorithm, the second algorithm 133A can be a sparse memory algorithm, and the third algorithm 135A can be a semiconductor memory algorithm. Memory management (RXX dvrMemory Manager) algorithm, but this case is not limited to this.

在一些實施例中,本案透過使用虛擬緩衝區113,以達到縮減實體緩衝區111之尺寸(size)的效果。舉例而言,虛擬緩衝區113(例如:第二緩衝器(Buffer 2))的尺寸(size)可以為 ,而儲存裝置110的實體緩衝區111(例如:第一緩衝器(Buffer 1))的尺寸(size)可以為 ,縮減比例可以為50%,而縮減比例可以與第一裝置900(例如:自製產品(In-house IP) 900)的壓縮速率(compress rate)相關,但本案不以此為限。 In some embodiments, this solution achieves the effect of reducing the size of the physical buffer 111 by using the virtual buffer 113 . For example, the size of the virtual buffer 113 (for example: the second buffer (Buffer 2)) can be , and the size (size) of the physical buffer 111 (for example: the first buffer (Buffer 1)) of the storage device 110 can be , the reduction ratio can be 50%, and the reduction ratio can be related to the compression rate (compression rate) of the first device 900 (for example, the home-made product (In-house IP) 900), but this case is not limited to this.

在一些實施例中,傳統記憶體之緩衝器具有第一體積,而本案之儲存裝置110的實體緩衝區111(例如:第一緩衝器(Buffer 1))具有第二體積,且第二體積小於第一體積。舉例而言,透過本案的虛擬緩衝區建立技術,可以達到有效縮小緩衝器之體積(buffer size)的效果。在一些實施例中,第二裝置910(例如:外購產品(Vendor IP )910)透過虛擬緩衝區113(例如:第二緩衝器(Buffer 2))來讀取(read/write)指令,且第二裝置910(例如:外購產品(Vendor IP )910)可以認為自己讀的是完整的緩衝器尺寸(buffer size),而不是實體緩衝區111(例如:第一緩衝器(Buffer 1))中有被壓縮過的尺寸(size),但本案不以此為限。In some embodiments, the buffer of the traditional memory has a first volume, and the physical buffer 111 (for example, the first buffer (Buffer 1)) of the storage device 110 in this case has a second volume, and the second volume is less than First volume. For example, through the virtual buffer creation technology of this case, the buffer size can be effectively reduced. In some embodiments, the second device 910 (for example: outsourcing product (Vendor IP) 910) reads (read/write) instructions through the virtual buffer 113 (for example: the second buffer (Buffer 2)), and The second device 910 (for example: outsourcing product (Vendor IP) 910) can think that it is reading the complete buffer size (buffer size) instead of the physical buffer 111 (for example: the first buffer (Buffer 1)) There is a compressed size (size) in , but this case is not limited to this.

在一些實施例中,匯流偵測轉換器(MonitorWrapper)121可以具有一階位址轉換(level 1 address translation)的功能,而不具有處理虛擬緩衝區113(例如:第二緩衝器(Buffer 2))的機制。進一步來說,第一裝置900(例如:自製產品(In-house IP) 900)與第二裝置910(例如:外購產品(Vendor IP )910)讀到的緩衝器尺寸(buffer size)跟緩衝器位址(buffer address)可以是同一個。意即,對於第一裝置900(例如:自製產品(In-house IP) 900)與第二裝置910(例如:外購產品(Vendor IP )910)而言,儲存裝置110的實體緩衝區111(例如:第一緩衝器(Buffer 1))所佔的記憶體尺寸(memory size)相當於原本虛擬緩衝區113(例如:第二緩衝器(Buffer 2))的尺寸(size),無法變小,但本案不以此為限。In some embodiments, the MonitorWrapper 121 may have the function of level 1 address translation without processing the virtual buffer 113 (for example, the second buffer (Buffer 2) ) mechanism. Furthermore, the buffer size (buffer size) and buffer size read by the first device 900 (for example: self-made product (In-house IP) 900) and the second device 910 (for example: outsourced product (Vendor IP) 910) The buffer address can be the same. That is, for the first device 900 (for example: self-made product (In-house IP) 900) and the second device 910 (for example: outsourced product (Vendor IP) 910), the physical buffer 111 of the storage device 110 ( For example: the memory size occupied by the first buffer (Buffer 1) is equivalent to the size of the original virtual buffer 113 (for example: the second buffer (Buffer 2)) and cannot be made smaller. But this case is not limited to this.

第3圖係依照本案一實施例繪示一種位址轉換方法的流程圖。為使第3圖之位址轉換方法300易於理解,請一併參閱第1圖及第3圖。第3圖之位址轉換方法300包含以下步驟:Figure 3 is a flow chart illustrating an address translation method according to an embodiment of the present invention. To make the address translation method 300 in Figure 3 easy to understand, please refer to Figure 1 and Figure 3 together. The address translation method 300 in Figure 3 includes the following steps:

步驟301:於儲存裝置110產生實體緩衝區111;Step 301: Generate the physical buffer 111 in the storage device 110;

步驟302:透過虛擬緩衝區演算法於儲存裝置110的虛擬容量中產生虛擬緩衝區113;Step 302: Generate the virtual buffer 113 in the virtual capacity of the storage device 110 through the virtual buffer algorithm;

步驟303:藉由記憶器匯流排120的耦合器121透過耦合演算法建立實體緩衝區111與虛擬緩衝區113的耦合關係;Step 303: Establish the coupling relationship between the physical buffer 111 and the virtual buffer 113 through the coupling algorithm through the coupler 121 of the memory bus 120;

步驟304:藉由實體緩衝區111從第一裝置900接受壓縮資料;Step 304: Receive compressed data from the first device 900 through the physical buffer 111;

步驟305:當第二裝置910欲讀取虛擬緩衝區113時,藉由耦合器121透過耦合關係導引第二裝置910至實體緩衝區111進行讀取;Step 305: When the second device 910 wants to read the virtual buffer 113, the coupler 121 guides the second device 910 to the physical buffer 111 through the coupling relationship to read;

步驟306:藉由記憶器匯流排120將實體緩衝區111的壓縮資料傳送至耦合器121;Step 306: Transmit the compressed data of the physical buffer 111 to the coupler 121 through the memory bus 120;

步驟307:藉由耦合器121將壓縮資料解壓縮為解壓縮資料;Step 307: Decompress the compressed data into decompressed data through the coupler 121;

步驟308:藉由記憶器匯流排120將解壓縮資料傳送至第二裝置。Step 308: Send the decompressed data to the second device via the memory bus 120.

在一實施例中,請參閱301,處理器130於儲存裝置110產生實體緩衝區111。舉例而言,儲存裝置110可以為容量4GB的雙倍資料率同步動態隨機存取記憶體(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM,以下簡稱為DDR),實體緩衝區111可以為於儲存裝置110 的0~4GB中,換句話說,實體緩衝區111可以使用的資源為0~4GB,但本案不以此為限。In one embodiment, please refer to 301 , the processor 130 generates the physical buffer 111 in the storage device 110 . For example, the storage device 110 can be a Double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM, hereinafter referred to as DDR) with a capacity of 4GB, and the physical buffer 111 can be a storage device. Among the 0~4GB of the device 110, in other words, the resources that can be used by the physical buffer 111 are 0~4GB, but this case is not limited to this.

請參閱第2圖,在一實施例中,處理器130可以包含記憶體分配器(memory allocator),並用以於儲存裝置110產生實體緩衝區111及虛擬緩衝區113,但本案不以此為限。在一些實施例中,記憶體分配器(memory allocator)130可以為第三演算法135A(例如:甲半導體記憶體管理(RXX dvrMemory Manager)演算法,如第2圖所示),且第三演算法135A(例如:甲半導體記憶體管理(RXX dvrMemory Manager)演算法)可以為基於Linux作業系統上,甲半導體公司開發的軟體模組,但本案不以此為限。Please refer to Figure 2. In one embodiment, the processor 130 may include a memory allocator and be used to generate the physical buffer 111 and the virtual buffer 113 for the storage device 110, but this case is not limited to this. . In some embodiments, the memory allocator 130 may be a third algorithm 135A (for example: a semiconductor memory management (RXX dvrMemory Manager) algorithm, as shown in Figure 2 ), and the third algorithm Method 135A (for example: Semiconductor A's memory management (RXX dvrMemory Manager) algorithm) can be a software module developed by Semiconductor Company A based on the Linux operating system, but this case is not limited to this.

在一實施例中,請參閱步驟302,處理器130透過虛擬緩衝區演算法於儲存裝置110的虛擬容量中產生虛擬緩衝區113。舉例而言,虛擬緩衝區演算法可以為第一演算法131A(例如:Linux系統核心(Linux kernel)演算法,如第2圖所示),虛擬容量可以為虛擬地址空間(fake address space),虛擬緩衝區113可以為稀疏記憶體(Sparse Memory)區塊113,換句話說,處理器130可以於第一演算法131A(例如:Linux系統核心(Linux kernel)演算法)註冊稀疏記憶體(Sparse Memory)區塊113,但本案不以此為限。In one embodiment, referring to step 302, the processor 130 generates the virtual buffer 113 in the virtual capacity of the storage device 110 through a virtual buffer algorithm. For example, the virtual buffer algorithm can be the first algorithm 131A (for example: the Linux kernel algorithm, as shown in Figure 2), and the virtual capacity can be the virtual address space (fake address space), The virtual buffer 113 may be a sparse memory (Sparse Memory) block 113. In other words, the processor 130 may register the sparse memory (Sparse Memory) in the first algorithm 131A (for example, the Linux kernel algorithm). Memory) block 113, but this case is not limited to this.

在一些實施例中,儲存裝置110的總容量可以為4GB,實體緩衝區111可以為第一緩衝器(Buffer 1),虛擬緩衝區113可以為第二緩衝器(Buffer 2),第二緩衝器(Buffer 2)可以為稀疏記憶體(Sparse Memory)區塊113,處理器130可以透過虛擬緩衝區演算法於儲存裝置110產生虛擬地址空間(fake address space),第一緩衝器(Buffer 1)可以使用儲存裝置110 的0~4GB區域,而稀疏記憶體(Sparse Memory)區塊113則使用虛擬地址空間(fake address space)中的4~5GB區域(對於儲存裝置110而言,實際上不存在),然而,稀疏記憶體(Sparse Memory)區塊113具有核心分頁結構(kernel pages structure)特性,故對第二裝置910而言,稀疏記憶體(Sparse Memory)區塊113可以視為實際存在的記憶體(physical memory),但本案不以此為限。故位址轉換系統100不須為將第一裝置900耦接於第二裝置910而增加硬體(例如:額外的記憶體容量)或資源。In some embodiments, the total capacity of the storage device 110 may be 4GB, the physical buffer 111 may be the first buffer (Buffer 1), the virtual buffer 113 may be the second buffer (Buffer 2), and the second buffer (Buffer 2) can be a sparse memory (Sparse Memory) block 113. The processor 130 can generate a virtual address space (fake address space) in the storage device 110 through a virtual buffer algorithm. The first buffer (Buffer 1) can The 0~4GB area of the storage device 110 is used, while the sparse memory block 113 uses the 4~5GB area in the virtual address space (fake address space) (which does not actually exist for the storage device 110) , however, the sparse memory (Sparse Memory) block 113 has kernel pages structure characteristics, so for the second device 910, the sparse memory (Sparse Memory) block 113 can be regarded as an actual existing memory. physical memory, but this case is not limited to this. Therefore, the address translation system 100 does not need to add hardware (eg, additional memory capacity) or resources to couple the first device 900 to the second device 910 .

在一些實施例中,實體緩衝區111可以為第一緩衝器(Buffer 1),虛擬緩衝區113可以為第二緩衝器(Buffer 2),而第一緩衝器(Buffer 1)及第二緩衝器(Buffer 2)的總數量可以為12塊,當然第一緩衝器(Buffer 1)及第二緩衝器(Buffer 2)的總數量可以更多或更少,但本案不以此為限。In some embodiments, the physical buffer 111 may be the first buffer (Buffer 1), the virtual buffer 113 may be the second buffer (Buffer 2), and the first buffer (Buffer 1) and the second buffer The total number of (Buffer 2) can be 12 blocks. Of course, the total number of the first buffer (Buffer 1) and the second buffer (Buffer 2) can be more or less, but this case is not limited to this.

在一實施例中,請參閱步驟303,藉由記憶器匯流排120的耦合器121透過耦合演算法建立實體緩衝區111與虛擬緩衝區113的耦合關係。舉例而言,記憶器匯流排120可以包含匯流偵測轉換器(MonitorWrapper)121,且匯流偵測轉換器(MonitorWrapper)121可以透過耦合演算法以將緩衝區111的第一位址耦合於虛擬緩衝區113的第二位址,但本案不以此為限。In one embodiment, refer to step 303, the coupler 121 of the memory bus 120 establishes a coupling relationship between the physical buffer 111 and the virtual buffer 113 through a coupling algorithm. For example, the memory bus 120 may include a bus detection switch (MonitorWrapper) 121, and the bus detection switch (MonitorWrapper) 121 may couple the first address of the buffer 111 to the virtual buffer through a coupling algorithm. The second address of District 113, but this case is not limited to this.

在一實施例中,請參閱步驟304,藉由實體緩衝區111從第一裝置900接受壓縮資料。舉例而言,第一裝置900可為自製產品(In-house IP) 900,其可以輸出壓縮資料(compressed data),壓縮資料可以寫入緩衝區111,但本案不以此為限。In one embodiment, please refer to step 304 to receive compressed data from the first device 900 through the physical buffer 111 . For example, the first device 900 can be a home-made product (In-house IP) 900, which can output compressed data, and the compressed data can be written into the buffer 111, but this case is not limited to this.

在一實施例中,請參閱步驟305,當第二裝置910欲讀取虛擬緩衝區113時,藉由耦合器121透過耦合關係導引第二裝置910至實體緩衝區111進行讀取。舉例而言,第二裝置910可為外購產品(Vendor IP) 910,且記憶器匯流排120可以包含匯流偵測轉換器(MonitorWrapper )121,當外購產品(Vendor IP) 910欲讀取虛擬緩衝區113時,可以藉由匯流偵測轉換器(MonitorWrapper )121透過耦合關係導引外購產品(Vendor IP) 910至實體緩衝區111進行讀取,但本案不以此為限。In one embodiment, please refer to step 305. When the second device 910 wants to read the virtual buffer 113, the coupler 121 guides the second device 910 to the physical buffer 111 for reading through the coupling relationship. For example, the second device 910 can be an outsourced product (Vendor IP) 910, and the memory bus 120 can include a bus detection converter (MonitorWrapper) 121. When the outsourced product (Vendor IP) 910 wants to read the virtual When buffer 113 is reached, the confluence detection converter (MonitorWrapper) 121 can be used to guide the outsourced product (Vendor IP) 910 to the physical buffer 111 for reading through the coupling relationship, but this case is not limited to this.

在一實施例中,請參閱步驟306,藉由記憶器匯流排120將實體緩衝區111將壓縮資料傳送至耦合器121。在一實施例中,請參閱步驟307,藉由耦合器121將壓縮資料解壓縮為解壓縮資料。在一實施例中,請參閱步驟308,藉由記憶器匯流排120將解壓縮資料傳送至第二裝置910。舉例而言,實體緩衝區111可以將壓縮資料(compressed data)傳送至耦合器121,耦合器121可以接受壓縮資料後,耦合器121將壓縮資料解壓縮為解壓縮資料(decompressed data),然後,記憶器匯流排120將解壓縮資料傳送至第二裝置910,但本案不以此為限。In one embodiment, referring to step 306 , the physical buffer 111 transmits the compressed data to the coupler 121 via the memory bus 120 . In one embodiment, please refer to step 307 to decompress the compressed data into decompressed data through the coupler 121 . In one embodiment, please refer to step 308 to transmit the decompressed data to the second device 910 via the memory bus 120 . For example, the physical buffer 111 can transmit compressed data to the coupler 121. After the coupler 121 can receive the compressed data, the coupler 121 decompresses the compressed data into decompressed data, and then, The memory bus 120 transmits the decompressed data to the second device 910, but this case is not limited to this.

第4圖至第6圖係依照本案一實施例繪示另一種位址轉換方法的流程圖。為使第4圖至第6圖之位址轉換方法400易於理解,請一併參閱第1圖、第2圖、第4圖至第6圖。第4圖至第6圖之位址轉換方法400包含以下步驟:Figures 4 to 6 are flow charts illustrating another address translation method according to an embodiment of the present invention. In order to make the address translation method 400 of Figures 4 to 6 easy to understand, please refer to Figures 1, 2, and 4 to 6 together. The address translation method 400 in Figures 4 to 6 includes the following steps:

步驟401:藉由第一裝置900傳送生成緩衝區指令;Step 401: Send a buffer creation command through the first device 900;

步驟402:根據生成緩衝區指令以透過緩衝區演算法於儲存裝置110產生實體緩衝區111;Step 402: Generate the physical buffer 111 in the storage device 110 through the buffer algorithm according to the generate buffer instruction;

步驟403:傳送返回緩衝區指令至第一裝置900;Step 403: Send the return buffer command to the first device 900;

步驟404:藉由第二裝置910傳送生成虛擬緩衝區指令;Step 404: Send a virtual buffer generation instruction through the second device 910;

步驟405:根據生成虛擬緩衝區指令以透過虛擬緩衝區演算法於儲存裝置110的虛擬容量中產生虛擬緩衝區113;Step 405: Generate the virtual buffer 113 in the virtual capacity of the storage device 110 through the virtual buffer algorithm according to the generate virtual buffer instruction;

步驟406:輸出耦合指令至記憶器匯流排120的耦合器121;Step 406: Output the coupling command to the coupler 121 of the memory bus 120;

步驟407:藉由耦合器121根據耦合指令以透過耦合演算法將實體緩衝區111的第一位址耦合於虛擬緩衝區113的第二位址;Step 407: The coupler 121 couples the first address of the physical buffer 111 to the second address of the virtual buffer 113 through a coupling algorithm according to the coupling instruction;

步驟408:傳送返回虛擬緩衝區指令至第二裝置910;Step 408: Send the return virtual buffer instruction to the second device 910;

步驟409:藉由第一裝置900根據返回緩衝區指令以將壓縮資料傳送至實體緩衝區111;Step 409: Use the first device 900 to transmit the compressed data to the physical buffer 111 according to the return buffer command;

步驟410:藉由第二裝置910根據返回虛擬緩衝區指令以傳送讀取資料指令至記憶器匯流排120;Step 410: Send the read data command to the memory bus 120 through the second device 910 according to the return virtual buffer command;

步驟411:藉由耦合器121確認是否從第二裝置910接收虛擬讀取資料指令;Step 411: Confirm whether a virtual read data command is received from the second device 910 through the coupler 121;

步驟412:藉由耦合器121確認有從第二裝置910接收虛擬讀取資料指令以傳送讀取緩衝區指令至實體緩衝區111;Step 412: Confirm that the virtual read data command is received from the second device 910 through the coupler 121 to send the read buffer command to the physical buffer 111;

步驟413:藉由實體緩衝區111根據讀取緩衝區指令以將壓縮資料傳送至耦合器121;Step 413: Transmit the compressed data to the coupler 121 through the physical buffer 111 according to the read buffer command;

步驟414:藉由耦合器121將壓縮資料解壓縮為解壓縮資料;Step 414: Decompress the compressed data into decompressed data through the coupler 121;

步驟415:藉由記憶器匯流排120將解壓縮資料傳送至第二裝置910。Step 415: Send the decompressed data to the second device 910 via the memory bus 120.

在一實施例中,請參閱步驟301、步驟401及步驟402,處理器130於儲存裝置110產生緩衝區111的步驟包含:藉由第一裝置900傳送生成緩衝區指令;以及處理器130根據生成緩衝區指令以透過緩衝區演算法於儲存裝置110產生實體緩衝區111。舉例而言,實體緩衝區111可以為第一緩衝器(Buffer 1),生成緩衝區指令可以為緩衝器輸出請求(request output Buffer )指令,但本案不以此為限。In one embodiment, please refer to step 301, step 401 and step 402. The step of the processor 130 generating the buffer 111 in the storage device 110 includes: sending a generate buffer instruction through the first device 900; and the processor 130 generates a buffer according to The buffer command generates a physical buffer 111 in the storage device 110 through a buffer algorithm. For example, the physical buffer 111 can be the first buffer (Buffer 1), and the buffer generation instruction can be a buffer output request (request output Buffer) instruction, but this case is not limited to this.

在一實施例中,請參閱步驟301、步驟403及步驟404,處理器130於儲存裝置110產生實體緩衝區111的步驟更包含:處理器130傳送返回緩衝區指令至第一裝置900;以及藉由第二裝置910傳送生成虛擬緩衝區指令。舉例而言,返回緩衝區指令可以為返回第一緩衝器(return Buffer 1)指令,生成虛擬緩衝區指令可以為緩衝器輸入請求(request input Buffer)指令,但本案不以此為限。In one embodiment, please refer to step 301, step 403 and step 404. The step of the processor 130 generating the physical buffer 111 in the storage device 110 further includes: the processor 130 sends a return buffer instruction to the first device 900; and The second device 910 transmits a generate virtual buffer instruction. For example, the return buffer instruction can be a return buffer 1 instruction, and the virtual buffer generation instruction can be a buffer input request (request input Buffer) instruction, but this case is not limited to this.

在一實施例中,請參閱步驟302及步驟405,處理器130透過虛擬緩衝區演算法於儲存裝置110的虛擬容量中產生虛擬緩衝區113的步驟包含:處理器130根據生成虛擬緩衝區指令以透過虛擬緩衝區演算法於儲存裝置110的虛擬容量中產生虛擬緩衝區113。舉例而言,處理器130可以根據虛擬緩衝區指令(例如:緩衝器輸入請求(request input Buffer)指令)以透過建立虛擬緩衝區演算法(例如:Linux系統核心(Linux kernel)演算法) 於儲存裝置110的虛擬容量(例如fake address space)中產生虛擬緩衝區113(例如:第二緩衝器(Buffer 2)),但本案不以此為限。In one embodiment, please refer to step 302 and step 405. The step of the processor 130 generating the virtual buffer 113 in the virtual capacity of the storage device 110 through the virtual buffer algorithm includes: the processor 130 generates a virtual buffer instruction according to The virtual buffer 113 is generated in the virtual capacity of the storage device 110 through a virtual buffer algorithm. For example, the processor 130 may create a virtual buffer algorithm (eg, a Linux kernel algorithm) in the storage according to a virtual buffer instruction (eg, a request input buffer instruction). The virtual buffer 113 (for example, the second buffer (Buffer 2)) is generated in the virtual capacity (for example, fake address space) of the device 110, but this case is not limited to this.

在一實施例中,請參閱步驟303、步驟406及步驟407,藉由記憶器匯流排120透過耦合演算法建立實體緩衝區111與虛擬緩衝區113的耦合關係的步驟包含:處理器130輸出耦合指令至記憶器匯流排120的耦合器121;以及藉由耦合器121根據耦合指令以透過耦合演算法將實體緩衝區111的第一位址耦合於虛擬緩衝區的第二位址。舉例而言,耦合指令可以為分配虛擬第二緩衝器(allocate fake Buffer 2)指令,耦合指令寫入記憶器匯流排120的耦合器121(例如:匯流偵測轉換器(MonitorWrapper)121)用以將虛擬緩衝區113(例如:第二緩衝器(Buffer 2))的第二位址映射(mapping)、結合(bind)或耦合(coupling)至緩衝區111(例如:第一緩衝器(Buffer 1))的第一位址,但本案不以此為限。In one embodiment, please refer to step 303, step 406 and step 407. The step of establishing the coupling relationship between the physical buffer 111 and the virtual buffer 113 through the coupling algorithm through the memory bus 120 includes: the processor 130 outputs the coupling instructions to the coupler 121 of the memory bus 120; and the coupler 121 couples the first address of the physical buffer 111 to the second address of the virtual buffer through a coupling algorithm according to the coupling instruction. For example, the coupling instruction may be an allocate fake Buffer 2 instruction. The coupling instruction is written to the coupler 121 (for example, the bus detection converter (MonitorWrapper) 121) of the memory bus 120 to Mapping, binding or coupling the second address of the virtual buffer 113 (for example: the second buffer (Buffer 2)) to the buffer 111 (for example: the first buffer (Buffer 1) )), but this case is not limited to this.

在一些實施例中,耦合演算法可以為匯流偵測轉換器(MonitorWrapper)121用以即時(real-time)的監督第二裝置910的位址(例如:讀取位置(read address))。當讀取位置(read address)落在虛擬緩衝區113的第二位址(例如:第二緩衝器(Buffer 2)的起始位址(start address)、結束位址(end address)之間),則將讀取位址(read address)進行第一轉換(例如:零階位址轉換(Level-0 address translator))以將讀取位址(read address)轉換為第一緩衝器(Buffer 1)相對應的位址(例如:第一緩衝器讀取位址(Buffer 1_read_address))。In some embodiments, the coupling algorithm can be used by the sink detection switch (MonitorWrapper) 121 to monitor the address (eg, read address) of the second device 910 in real-time. When the read position (read address) falls within the second address of the virtual buffer 113 (for example: between the start address (start address) and the end address (end address) of the second buffer (Buffer 2)) , then the read address (read address) is subjected to the first conversion (for example: Level-0 address translator) to convert the read address (read address) into the first buffer (Buffer 1 ) corresponding address (for example: the first buffer read address (Buffer 1_read_address)).

然後,將第一緩衝器讀取位址(Buffer 1_read_address)進行第二轉換(例如:第一階轉換(Level-1 translator))以取得第一緩衝器(Buffer 1)相對應的資料偏移(例如:第一緩衝器偏移位址(Buffer 1_offset_address))及第一快取(例如:首標快取(header cache))。此外,第一快取(例如:首標快取(header cache))可以生成第二快取(例如:解壓縮資料快取(Decompressor/data cache))。Then, perform a second conversion (for example: first-level conversion (Level-1 translator)) on the first buffer read address (Buffer 1_read_address) to obtain the corresponding data offset of the first buffer (Buffer 1) ( For example: the first buffer offset address (Buffer 1_offset_address)) and the first cache (for example: header cache). In addition, a first cache (eg, header cache) can generate a second cache (eg, decompressor/data cache).

再來,儲存裝置110的介面(例如:記憶體界面(DDR interface))接收第一緩衝器偏移位址(Buffer 1_offset_address)及解壓縮資料快取(Decompressor/data cache)後,記憶體界面(DDR interface)根據解壓縮資料快取(Decompressor/data cache)以驅動匯流偵測轉換器(MonitorWrapper)121將第一裝置900(例如:自製產品(In-house IP) )的壓縮資料解壓縮為解壓縮資料(decompress data)。然後,匯流偵測轉換器(MonitorWrapper)121將解壓縮資料傳送至第二裝置910(例如:外購產品(Vendor IP)),但本案不以此為限。Next, after the interface of the storage device 110 (for example, the memory interface (DDR interface)) receives the first buffer offset address (Buffer 1_offset_address) and the decompressed data cache (Decompressor/data cache), the memory interface ( DDR interface) drives the monitoring converter (MonitorWrapper) 121 according to the decompressed data cache (Decompressor/data cache) to decompress the compressed data of the first device 900 (for example: home-made product (In-house IP)) into decompressed data. Decompress data. Then, the monitoring converter (MonitorWrapper) 121 transmits the decompressed data to the second device 910 (for example, an outsourced product (Vendor IP)), but this case is not limited to this.

在一實施例中,請參閱步驟303及步驟408,藉由記憶器匯流排120透過耦合演算法建立實體緩衝區111與虛擬緩衝區113的耦合關係的步驟更包含:處理器130傳送返回虛擬緩衝區指令至第二裝置910。舉例而言,返回虛擬緩衝區指令可以為返回第二緩衝器(return Buffer 2)指令,但本案不以此為限。In one embodiment, please refer to step 303 and step 408. The step of establishing the coupling relationship between the physical buffer 111 and the virtual buffer 113 through the coupling algorithm through the memory bus 120 further includes: the processor 130 returns the virtual buffer. area command to the second device 910. For example, the instruction to return the virtual buffer can be an instruction to return the second buffer (return Buffer 2), but this case is not limited to this.

在一實施例中,請參閱步驟304及步驟409,藉由實體緩衝區111從第一裝置900接受壓縮資料的步驟包含:藉由第一裝置900根據返回緩衝區指令以將壓縮資料傳送至實體緩衝區111。舉例而言,第一裝置900可以根據返回第一緩衝器(return Buffer 1)指令以將壓縮資料傳送至第一緩衝器(Buffer 1),但本案不以此為限。In one embodiment, please refer to step 304 and step 409. The step of receiving compressed data from the first device 900 through the physical buffer 111 includes: transmitting the compressed data to the entity according to the return buffer command by the first device 900. Buffer 111. For example, the first device 900 can transmit the compressed data to the first buffer (Buffer 1) according to the return Buffer 1 instruction, but the present case is not limited to this.

在一實施例中,請參閱步驟305、步驟410及步驟411,當第二裝置910欲讀取虛擬緩衝區113時,藉由記憶器匯流排120透過耦合關係導引第二裝置910至實體緩衝區111進行讀取的步驟包含:藉由第二裝置910根據返回虛擬緩衝區指令以傳送讀取資料指令至記憶器匯流排120;以及藉由耦合器121確認是否從第二裝置910接收虛擬讀取資料指令。In one embodiment, please refer to step 305, step 410 and step 411. When the second device 910 wants to read the virtual buffer 113, the memory bus 120 guides the second device 910 to the physical buffer through the coupling relationship. The step of reading in the area 111 includes: sending a read data command to the memory bus 120 by the second device 910 according to the return virtual buffer command; and confirming whether a virtual read is received from the second device 910 by the coupler 121 Get data command.

舉例而言,讀取資料指令可以為從第二緩衝器讀取資料(read data from Buffer 2)指令,虛擬讀取資料指令可以為虛擬讀取觸發器(faked read trigger) 指令,第二裝置910可以根據返回第二緩衝器(return Buffer 2)指令以傳送從第二緩衝器讀取資料(read data from Buffer 2)指令至記憶器匯流排120,且耦合器121可以進一步確認(或辨識)從第二裝置910輸出的第二緩衝器讀取資料(read data from Buffer 2)指令是否為虛擬讀取觸發器(faked read trigger) 指令,但本案不以此為限。For example, the read data instruction may be a read data from Buffer 2 instruction, and the virtual read data instruction may be a fake read trigger instruction. The second device 910 A read data from Buffer 2 command can be sent to the memory bus 120 according to a return Buffer 2 command, and the coupler 121 can further confirm (or identify) the data from the second buffer (return Buffer 2). Whether the second buffer read data (read data from Buffer 2) command output by the second device 910 is a fake read trigger command, but this case is not limited to this.

在一實施例中,請參閱步驟306、步驟412及步驟413,藉由實體緩衝區111將壓縮資料傳送至記憶器匯流排120的步驟包含:藉由耦合器121確認有從第二裝置910接收虛擬讀取資料指令以傳送讀取緩衝區指令至實體緩衝區111;以及藉由實體緩衝區111根據讀取緩衝區指令以將壓縮資料傳送至耦合器121。In one embodiment, please refer to step 306, step 412 and step 413. The step of transmitting the compressed data to the memory bus 120 through the physical buffer 111 includes: confirming the reception from the second device 910 through the coupler 121. The virtual read data command is used to send the read buffer command to the physical buffer 111; and the physical buffer 111 sends the compressed data to the coupler 121 according to the read buffer command.

舉例而言,讀取緩衝區指令可以為從第一緩衝器讀取請求(request read from Buffer 1)指令,耦合器121可以確認(或辨識)從第二裝置910輸出的第二緩衝器讀取資料(read data from Buffer 2)指令為虛擬讀取觸發器(faked read trigger) 指令,且耦合器121可以接著傳送從第一緩衝器讀取請求(request read from Buffer 1)指令至實體緩衝區111,實體緩衝區111根據從第一緩衝器讀取請求(request read from Buffer 1)指令以將壓縮資料傳送至耦合器121,但本案不以此為限。For example, the read buffer instruction may be a request read from Buffer 1 instruction, and the coupler 121 may confirm (or identify) the second buffer read output from the second device 910 The data (read data from Buffer 2) command is a faked read trigger command, and the coupler 121 can then transmit a read request (request read from Buffer 1) command to the physical buffer 111 , the physical buffer 111 transmits the compressed data to the coupler 121 according to the request read from Buffer 1 instruction, but this case is not limited to this.

在一實施例中,請參閱步驟307及步驟414,藉由耦合器121將壓縮資料解壓縮為解壓縮資料。在一實施例中,請參閱步驟307及步驟415,藉由記憶器匯流排120將解壓縮資料傳送至第二裝置910。舉例而言,耦合器121可以接受壓縮資料後,耦合器121將壓縮資料解壓縮為解壓縮資料(decompressed data),然後,記憶器匯流排120將解壓縮資料傳送至第二裝置910,但本案不以此為限。In one embodiment, please refer to step 307 and step 414 to decompress the compressed data into decompressed data through the coupler 121 . In one embodiment, please refer to steps 307 and 415 to transmit the decompressed data to the second device 910 through the memory bus 120 . For example, after the coupler 121 can receive compressed data, the coupler 121 decompresses the compressed data into decompressed data, and then the memory bus 120 transmits the decompressed data to the second device 910. However, in this case Not limited to this.

在一些實施例中,虛擬緩衝區演算法包含Linux演算法,且耦合器121包含解壓縮器。舉例而言,虛擬緩衝區演算法可以與第一演算法131A(例如:Linux系統核心(Linux kernel),如第2圖所示)相關的演算法技術,解壓縮器可以為任何泛指實體或軟體上的解壓縮器(Decompressor),記憶器匯流排120可以包含匯流偵測轉換器(MonitorWrapper)及解壓縮器(Decompressor),但本案不以此為限。In some embodiments, the virtual buffer algorithm includes a Linux algorithm and coupler 121 includes a decompressor. For example, the virtual buffer algorithm may be an algorithm technology related to the first algorithm 131A (for example: Linux kernel, as shown in Figure 2), and the decompressor may be any generic entity or As a software decompressor, the memory bus 120 may include a bus detection converter (MonitorWrapper) and a decompressor (Decompressor), but this case is not limited to this.

由上述本案實施方式可知,應用本案具有下列優點。本案實施例所示之位址轉換系統及位址轉換方法得以降低消耗記憶體內資源之消耗,以達到兩個不同位址的硬體傳遞資料的效果。It can be seen from the above embodiments that the application of this case has the following advantages. The address translation system and address translation method shown in the embodiment of this case can reduce the consumption of memory resources and achieve the effect of transferring data between two hardwares with different addresses.

雖然上文實施方式中揭露了本案的具體實施例,然其並非用以限定本案,本案所屬技術領域中具有通常知識者,在不悖離本案之原理與精神的情形下,當可對其進行各種更動與修飾,因此本案之保護範圍當以附隨申請專利範圍所界定者為準。Although the above implementation mode discloses specific examples of the present case, it is not intended to limit the present case. Persons with ordinary knowledge in the technical field to which the present case belongs can, without departing from the principles and spirit of the present case, proceed with it. Various changes and modifications, therefore the scope of protection in this case shall be subject to the scope of the accompanying patent application.

100:位址轉換系統 110:儲存裝置 111:緩衝區 113:虛擬緩衝區 120:記憶器匯流排 121:耦合器(匯流偵測轉換器) 130、130A:處理器 900:第一裝置(自製產品) 910:第二裝置(外購產品) 131A:第一演算法(演算法) 133A:第二演算法(演算法) 135A:第三演算法(演算法) 300、400:位址轉換方法 301~307:步驟 401~414:步驟 100: Address translation system 110:Storage device 111:Buffer 113:Virtual buffer 120:Memory bus 121: Coupler (convergence detection converter) 130, 130A: Processor 900: First device (homemade product) 910: Second device (outsourced product) 131A: First algorithm (algorithm) 133A: Second algorithm (algorithm) 135A: The third algorithm (algorithm) 300, 400: Address conversion method 301~307: Steps 401~414: Steps

為讓本案之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖式之說明如下: 第1圖係依照本案一實施例繪示一種位址轉換系統的方塊示意圖。 第2圖係依照本案一實施例繪示一種位址轉換系統之處理器的方塊示意圖。 第3圖係依照本案一實施例繪示一種位址轉換方法的流程圖。 第4圖至第6圖係依照本案一實施例繪示另一種位址轉換方法的流程圖。 根據慣常的作業方式,圖中各種特徵與元件並未依比例繪製,其繪製方式是為了以最佳的方式呈現與本案相關的具體特徵與元件。此外,在不同圖式間,以相同或相似的元件符號來指稱相似的元件/部件。 In order to make the above and other purposes, features, advantages and embodiments of this case more obvious and understandable, the attached drawings are described as follows: Figure 1 is a schematic block diagram of an address translation system according to an embodiment of the present invention. Figure 2 is a schematic block diagram of a processor of an address translation system according to an embodiment of the present invention. Figure 3 is a flow chart illustrating an address translation method according to an embodiment of the present invention. Figures 4 to 6 are flow charts illustrating another address translation method according to an embodiment of the present invention. In accordance with common practice, the various features and components in the drawings are not drawn to scale, but are drawn in such a way as to best present the specific features and components relevant to this case. In addition, the same or similar reference symbols are used to refer to similar elements/components in different drawings.

國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無 Domestic storage information (please note in order of storage institution, date, and number) without Overseas storage information (please note in order of storage country, institution, date, and number) without

100:位址轉換系統 100: Address translation system

110:儲存裝置 110:Storage device

111:實體緩衝區 111:Entity buffer

113:虛擬緩衝區 113:Virtual buffer

120:記憶器匯流排 120:Memory bus

121:耦合器 121:Coupler

130:處理器 130: Processor

900:第一裝置 900:First device

910:第二裝置 910:Second device

Claims (10)

一種位址轉換系統,包含:一儲存裝置;一記憶器匯流排,包含:一耦合器,用以將一第一裝置耦合至一第二裝置;以及一處理器,用以根據該儲存裝置的複數個指令以執行以下步驟:於該儲存裝置產生一實體緩衝區;透過一虛擬緩衝區演算法於該儲存裝置的一虛擬容量中產生一虛擬緩衝區;藉由該記憶器匯流排的該耦合器透過一耦合演算法建立該實體緩衝區與該虛擬緩衝區的一耦合關係;藉由該實體緩衝區從該第一裝置接受一壓縮資料;當該第二裝置欲讀取該虛擬緩衝區時,藉由該耦合器透過該耦合關係導引該第二裝置至該實體緩衝區進行讀取;藉由該記憶器匯流排將該實體緩衝區的一壓縮資料傳送至該耦合器;藉由該耦合器將該壓縮資料解壓縮為一解壓縮資料;以及藉由該記憶器匯流排將該解壓縮資料傳送至該第二裝置。 An address translation system, including: a storage device; a memory bus, including: a coupler, used to couple a first device to a second device; and a processor, used according to the storage device A plurality of instructions to perform the following steps: create a physical buffer in the storage device; create a virtual buffer in a virtual capacity of the storage device through a virtual buffer algorithm; through the coupling of the memory bus The device establishes a coupling relationship between the physical buffer and the virtual buffer through a coupling algorithm; receives compressed data from the first device through the physical buffer; when the second device wants to read the virtual buffer , the coupler guides the second device to the physical buffer for reading through the coupling relationship; transmits a compressed data of the physical buffer to the coupler through the memory bus; through the memory bus The coupler decompresses the compressed data into decompressed data; and transmits the decompressed data to the second device through the memory bus. 如請求項1所述之位址轉換系統,其中該處 理器更用以根據該儲存裝置的該些指令以執行以下步驟:藉由該第一裝置傳送一生成緩衝區指令;以及根據該生成緩衝區指令以透過一緩衝區演算法於該儲存裝置產生該實體緩衝區。 The address translation system as described in claim 1, wherein The processor is further configured to perform the following steps according to the instructions of the storage device: transmit a generate buffer instruction through the first device; and generate a buffer in the storage device through a buffer algorithm according to the generate buffer instruction. The entity buffer. 如請求項2所述之位址轉換系統,其中該處理器更用以根據儲存裝置的該些指令以執行以下步驟:傳送一返回緩衝區指令至該第一裝置;以及藉由該第二裝置傳送一生成虛擬緩衝區指令。 The address translation system of claim 2, wherein the processor is further configured to perform the following steps according to the instructions of the storage device: sending a return buffer instruction to the first device; and through the second device Send a generate virtual buffer command. 如請求項3所述之位址轉換系統,其中該處理器更用以根據該儲存裝置的該些指令以執行以下步驟:根據該生成虛擬緩衝區指令以透過該虛擬緩衝區演算法於該儲存裝置的該虛擬容量中產生該虛擬緩衝區。 The address translation system as described in claim 3, wherein the processor is further configured to perform the following steps according to the instructions of the storage device: according to the generate virtual buffer instruction to use the virtual buffer algorithm to generate data in the storage device. The virtual buffer is generated in the virtual capacity of the device. 如請求項4所述之位址轉換系統,其中該處理器更用以根據該儲存裝置的該些指令以執行以下步驟:輸出一耦合指令至該記憶器匯流排的該耦合器;以及藉由該耦合器根據該耦合指令以透過該耦合演算法將該實體緩衝區的一第一位址耦合於該虛擬緩衝區的一第二位址。 The address translation system of claim 4, wherein the processor is further configured to perform the following steps according to the instructions of the storage device: outputting a coupling instruction to the coupler of the memory bus; and by The coupler couples a first address of the physical buffer to a second address of the virtual buffer through the coupling algorithm according to the coupling instruction. 如請求項5所述之位址轉換系統,其中該處理器更用以根據該儲存裝置的該些指令以執行以下步驟: 傳送一返回虛擬緩衝區指令至該第二裝置。 The address translation system of claim 5, wherein the processor is further configured to perform the following steps according to the instructions of the storage device: Send a return virtual buffer command to the second device. 如請求項6所述之位址轉換系統,其中該處理器更用以根據該儲存裝置的該些指令以執行以下步驟:藉由該第一裝置根據該返回緩衝區指令以將該壓縮資料傳送至該實體緩衝區。 The address translation system of claim 6, wherein the processor is further configured to perform the following steps according to the instructions of the storage device: transmit the compressed data through the first device according to the return buffer instruction. to the entity buffer. 如請求項7所述之位址轉換系統,其中該處理器更用以根據該儲存裝置的該些指令以執行以下步驟:藉由該第二裝置根據該返回虛擬緩衝區指令以傳送一讀取資料指令至該記憶器匯流排;以及藉由該耦合器確認是否從該第二裝置接收一虛擬讀取資料指令。 The address translation system of claim 7, wherein the processor is further configured to perform the following steps according to the instructions of the storage device: transmit a read by the second device according to the return virtual buffer instruction. data commands to the memory bus; and confirming whether a virtual read data command is received from the second device through the coupler. 如請求項8所述之位址轉換系統,其中該處理器更用以根據該儲存裝置的該些指令以執行以下步驟:藉由該耦合器確認有從該第二裝置接收該虛擬讀取資料指令以傳送一讀取緩衝區指令至該實體緩衝區;以及藉由該實體緩衝區根據該讀取緩衝區指令以將該壓縮資料傳送至該耦合器。 The address translation system of claim 8, wherein the processor is further configured to perform the following steps according to the instructions of the storage device: confirm receipt of the virtual read data from the second device through the coupler The instruction is to send a read buffer command to the physical buffer; and the compressed data is sent to the coupler through the physical buffer according to the read buffer command. 一種位址轉換方法,包含:於一儲存裝置產生一實體緩衝區;透過一虛擬緩衝區演算法於該儲存裝置的一虛擬容量中 產生一虛擬緩衝區;藉由一記憶器匯流排的一耦合器透過一耦合演算法建立該實體緩衝區與該虛擬緩衝區的一耦合關係;藉由該耦合器透過該耦合演算法以將該實體緩衝區的一第一位址耦合於該虛擬緩衝區的一第二位址;藉由該實體緩衝區從一第一裝置接受一壓縮資料;當一第二裝置欲讀取該虛擬緩衝區時,藉由該耦合器透過該耦合關係導引該第二裝置至該實體緩衝區進行讀取;藉由該記憶器匯流排將該實體緩衝區的一壓縮資料傳送至該耦合器;藉由該耦合器將該壓縮資料解壓縮為一解壓縮資料:以及藉由該記憶器匯流排將該解壓縮資料傳送至該第二裝置。 An address translation method, including: generating a physical buffer in a storage device; using a virtual buffer algorithm in a virtual capacity of the storage device Generate a virtual buffer; use a coupler of a memory bus to establish a coupling relationship between the physical buffer and the virtual buffer through a coupling algorithm; use the coupler to use the coupling algorithm to combine the physical buffer and the virtual buffer. A first address of the physical buffer is coupled to a second address of the virtual buffer; compressed data is received from a first device through the physical buffer; when a second device wants to read the virtual buffer At this time, the coupler guides the second device to the physical buffer for reading through the coupling relationship; transmits a compressed data of the physical buffer to the coupler through the memory bus; The coupler decompresses the compressed data into decompressed data and transmits the decompressed data to the second device through the memory bus.
TW111136841A 2022-09-28 2022-09-28 Address conversion system and address conversion method TWI813455B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW111136841A TWI813455B (en) 2022-09-28 2022-09-28 Address conversion system and address conversion method
US18/320,185 US20240104032A1 (en) 2022-09-28 2023-05-18 Address conversion system and address conversion method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111136841A TWI813455B (en) 2022-09-28 2022-09-28 Address conversion system and address conversion method

Publications (2)

Publication Number Publication Date
TWI813455B true TWI813455B (en) 2023-08-21
TW202414226A TW202414226A (en) 2024-04-01

Family

ID=88585936

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111136841A TWI813455B (en) 2022-09-28 2022-09-28 Address conversion system and address conversion method

Country Status (2)

Country Link
US (1) US20240104032A1 (en)
TW (1) TWI813455B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201435585A (en) * 2013-03-05 2014-09-16 Htc Corp Electronic apparatus for data access and data access method therefor
TW201918882A (en) * 2017-11-13 2019-05-16 韓商愛思開海力士有限公司 Memory system and operating method thereof
TW202225983A (en) * 2020-12-23 2022-07-01 美商英特爾公司 Secure address translation services using bundle access control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201435585A (en) * 2013-03-05 2014-09-16 Htc Corp Electronic apparatus for data access and data access method therefor
TW201918882A (en) * 2017-11-13 2019-05-16 韓商愛思開海力士有限公司 Memory system and operating method thereof
CN109783397A (en) * 2017-11-13 2019-05-21 爱思开海力士有限公司 Storage system and its operating method
TW202225983A (en) * 2020-12-23 2022-07-01 美商英特爾公司 Secure address translation services using bundle access control

Also Published As

Publication number Publication date
TW202414226A (en) 2024-04-01
US20240104032A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
US6263413B1 (en) Memory integrated circuit and main memory and graphics memory systems applying the above
US8001294B2 (en) Methods and apparatus for providing a compressed network in a multi-processing system
JP5681782B2 (en) On-die system fabric block control
US5974471A (en) Computer system having distributed compression and decompression logic for compressed data movement
US7275123B2 (en) Method and apparatus for providing peer-to-peer data transfer within a computing environment
CN110647480A (en) Data processing method, remote direct memory access network card and equipment
JP6069031B2 (en) Computer and memory management method
US6704022B1 (en) System for accessing graphics data from memory and method thereof
EP3964949B1 (en) Graphics processing method and apparatus
CN109308283A (en) A kind of SoC system on chip and its peripheral bus switching method
TW201214133A (en) USB transaction translator and a bulk transaction method
JP6523707B2 (en) Memory subsystem that performs continuous reading from lap reading
TWI813455B (en) Address conversion system and address conversion method
CN204390227U (en) Computing equipment expanding unit and extendible computing system
US11625344B2 (en) Transmission control circuit, data transmission system using different data formats, and operating method thereof
CN117891755A (en) Address translation system and address translation method
CN111724295B (en) Collaborative access method and system for external memory and collaborative access architecture
CN115549858A (en) Data transmission method and device
KR100591243B1 (en) On-chip serialized peripheral bus system and operating method thereof
CN113094310A (en) Memory manager, processor memory subsystem, processor and electronic equipment
US7716397B2 (en) Methods and systems for interprocessor message exchange between devices using only write bus transactions
JP2002123420A (en) Memory access device
CN114840458B (en) Read-write module, system on chip and electronic equipment
WO2016170673A1 (en) Computer system and memory module
WO2024037251A1 (en) Data transmission method, apparatus and system, device, and storage medium