TWI792500B - 處理程式語言函數的裝置及方法 - Google Patents

處理程式語言函數的裝置及方法 Download PDF

Info

Publication number
TWI792500B
TWI792500B TW110130253A TW110130253A TWI792500B TW I792500 B TWI792500 B TW I792500B TW 110130253 A TW110130253 A TW 110130253A TW 110130253 A TW110130253 A TW 110130253A TW I792500 B TWI792500 B TW I792500B
Authority
TW
Taiwan
Prior art keywords
command
extended
programming language
circuit
data
Prior art date
Application number
TW110130253A
Other languages
English (en)
Other versions
TW202244726A (zh
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 瑞昱半導體股份有限公司
Publication of TW202244726A publication Critical patent/TW202244726A/zh
Application granted granted Critical
Publication of TWI792500B publication Critical patent/TWI792500B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/311Functional or applicative languages; Rewrite languages
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Bus Control (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

一種處理裝置,用於一匯流排中,用來執行一中央處理單元的一程式語言函數,包含有一接收電路,用來從該中央處理單元接收一聯合指令,以協助該中央處理單元執行該程式語言函數,其中該聯合指令包含有一擴展讀取指令及一擴展寫入指令;一傳送電路,用來傳送該擴展讀取指令到一從屬裝置,以透過該接收電路從該從屬裝置接收回應該擴展讀取指令的一第一回應訊息,其中該第一回應訊息包含有該從屬裝置從一記憶體區塊中讀取的至少一資料;以及一寫入電路,用來根據該擴展寫入指令,將該至少一資料寫入該程式語言函數對應的一目的地址中。

Description

處理程式語言函數的裝置及方法
本發明相關於一種處理裝置及方法,尤指一種用來執行一中央處理單元(central processing unit,CPU)的一程式語言函數的裝置及方法。
在電腦系統中,中央處理單元(central processing unit,CPU)負責執行多種程式語言函數。根據先前技術,當中央處理單元執行資料轉移及/或資料複製的程式語言函數(例如,C語言的memcpy、strcpy等)時,中央處理單元重複讀取及寫入記憶體區塊的資料,消耗大量中央處理單元的處理時間。此外,若透過使用直接記憶體存取控制器(direct memory access controller,DMAC)來處理程式語言函數,不但需要執行的程式碼的數量較多,執行的過程複雜,資源消耗也較大。因此,如何讓中央處理單元有效率的執行程式語言函數,以提昇程式語言函數的執行速度及中央處理單元的執行效率為一亟需解決的問題。
本發明提供了一種處理裝置及方法,用來執行中央處理單元(central processing unit,CPU)的程式語言函數,以解決上述問題。
本發明揭露一種處理裝置,用於一匯流排(bus)中,用來執行一中央處理單元(central processing unit,CPU)的一程式語言函數,包含有一接收電路,用來從該中央處理單元接收一聯合指令,以協助該中央處理單元執行該程式語言函數,其中該聯合指令包含有一擴展讀取(read)指令及一擴展寫入(write)指令;一傳送電路,耦接於該接收電路,用來傳送該擴展讀取指令到一從屬裝置,以透過該接收電路從該從屬裝置接收回應該擴展讀取指令的一第一回應訊息,其中該第一回應訊息包含有該從屬裝置從一記憶體區塊中讀取的至少一資料;以及一寫入電路,耦接於該接收電路及該傳送電路,用來根據該擴展寫入指令,將該至少一資料寫入該程式語言函數對應的一目的地址中。
本發明另揭露一種處理裝置,用於一記憶體控制裝置中,用來執行一中央處理單元(central processing unit,CPU)的一程式語言函數,包含有一傳送電路;一接收電路,耦接於該傳送電路,用來從一匯流排(bus)接收一聯合指令,以協助該中央處理單元執行該程式語言函數,其中該聯合指令包含有一擴展讀取(read)指令及一擴展寫入(write)指令;一讀取電路,耦接於該接收電路,用來根據該擴展讀取指令,從一記憶體區塊中讀取至少一資料;以及一寫入電路,耦接於該傳送電路及該讀取電路,用來根據該擴展寫入指令,將該至少一資料寫入該程式語言函數對應的一目的地址中。
本發明另揭露一種處理程式語言的方法,用於一處理裝置,用來執行一中央處理單元(central processing unit,CPU)的一程式語言函數,包含有從該中央處理單元接收一聯合指令,以協助該中央處理單元執行該程式語言函數,其中該聯合指令包含有一擴展讀取(read)指令及一擴展寫入(write)指令;在接收到該聯合指令後,傳送該擴展讀取指令到一從屬裝置,以從該從屬裝置接收回應該擴展讀取指令的一回應訊息,其中該回應訊息包含有該從屬裝置從一記憶體區塊中讀取的至少一資料;以及在接收到該回應訊息後,根據該擴展寫入指令,將該至少一資料寫入該程式語言函數對應的一目的地址中。
第1圖為本發明實施例一處理系統10的示意圖。處理系統10包含有一控制單元100、一資料交換介面110、一處理裝置120、一記憶體控制裝置130及一周邊設備140。控制單元100可為一中央處理單元(central processing unit,CPU)、一主要控制單元(master control unit,MCU)或一數位訊號處理器(digital signal processor,DSP),而不限於此。資料交換介面110可為一匯流排(bus)或一互連(interconnect)介面,而不限於此。控制單元100包含有一匯流協定介面101及一快取記憶體102,其中匯流協定介面101包含有一主要讀取(read)介面103及一主要寫入(write)介面104。記憶體控制裝置130可為資料交換介面110的一從屬裝置。處理裝置120可被安裝於資料交換介面110或記憶體控制裝置130中,以協助控制單元100執行控制單元100的程式語言函數。資料交換介面110可同時與多個周邊設備140連接。詳細來說,根據至少一擴展指令,控制單元100傳送程式語言函數的一聯合指令到資料交換介面110,其中聯合指令包含有一擴展讀取指令ERC及一擴展寫入指令EWC。擴展讀取指令ERC及擴展寫入指令EWC分別透過主要讀取介面103及主要寫入介面104被傳送到資料交換介面110。也就是說,聯合指令可透過多個介面被傳送。
若處理裝置120被安裝於不同裝置中,處理系統10可具有不同對應的運作。若處理裝置120被安裝於資料交換介面110中,處理裝置120可接收聯合指令,以協助控制單元100執行程式語言函數。在接收到聯合指令後,處理裝置120傳送擴展讀取指令ERC到記憶體控制裝置130,以從記憶體控制裝置130接收至少一資料,其中至少一資料是由記憶體控制裝置130從一記憶體區塊(未繪示於圖中)中讀取而獲得。根據擴展寫入指令EWC,處理裝置120將至少一資料寫入到程式語言函數對應的目的地址中。另一方面,若處理裝置120被安裝於記憶體控制裝置130中,在接收到聯合指令後,資料交換介面110傳送聯合指令到處理裝置120,以使處理裝置120協助控制單元100執行程式語言函數。在接收到聯合指令後,處理裝置120從一記憶體區塊中讀取至少一資料。接著,根據擴展寫入指令EWC,處理裝置120將至少一資料寫入到程式語言函數對應的目的地址中。
第2圖為本發明實施例一處理裝置20的示意圖。處理裝置20可被設置在資料交換介面110(例如,一匯流排)中,用來執行控制單元100(例如,一中央處理單元)的程式語言函數。處理裝置20可被用來實現第1圖中的處理裝置120。處理裝置20包含有一接收電路200、一傳送電路210及一寫入電路220。詳細來說,接收電路200從控制單元100接收一聯合指令,以協助控制單元100執行程式語言函數,其中聯合指令包含有一擴展讀取指令ERC及一擴展寫入指令EWC。傳送電路210耦接於接收電路200,以及在接收電路200接收聯合指令後,傳送擴展讀取指令ERC到一從屬裝置(例如,第1圖中的記憶體控制裝置130),以透過接收電路200從從屬裝置接收回應擴展讀取指令ERC的一第一回應訊息。第一回應訊息包含有從屬裝置從一記憶體區塊中讀取的至少一資料。寫入電路220耦接於接收電路200及傳送電路210,以及在接收電路200接收第一回應訊息後,根據擴展寫入指令EWC,將至少一資料寫入程式語言函數對應的一目的地址中。
根據前述說明,本發明提供了一種處理裝置,以協助中央處理單元執行程式語言函數,以及提昇程式語言函數的執行速度,進一步減少中央處理單元的處理時間。因此,提昇程式語言函數的執行速度及中央處理單元的執行效率的問題可獲得解決。
在一實施例中,從屬裝置可為一記憶體控制裝置(例如,第1圖中的記憶體控制裝置130)。在一實施例中,程式語言函數為一C語言函數。在一實施例中,程式語言函數可為memcpy、strcpy、strcat、strdup、strncat或memmove,而不限於此。在一實施例中,控制單元100(例如,中央處理單元)可為不具有互鎖管線階段的微處理器(Microprocessor without Interlocked Pipeline Stages,MIPS)架構、進階精簡指令集計算機(advanced reduced instruction set computer,RISC)機器(advanced RISC machine,ARM)架構或進階精簡指令集計算機-第五(RISC-V)架構,而不限於此。在一實施例中,控制單元100包含有至少一擴展指令。在一實施例中,至少一擴展指令為RISC-V架構的指令。在一實施例中,本發明的一擴展指令可為以下RISC-V指令:
MEMCPY  rd, rs1, rs2, imm
其中rd為一程式語言函數memory copy的目的地址。rs1為程式語言函數memory copy的來源地址。rs2為程式語言函數memory copy的一數量。imm為資料寬度,其長度為7位元(bits)。舉例來說,若imm為0(即預設值(default)),則資料寬度為1位元組(byte);若imm為1,則資料寬度為2位元組。若imm為2,則資料寬度為4位元組;若imm為8,則資料寬度為8位元組。若imm為9,則資料寬度為16位元組,但不以此為限。在一實施例中,RISC-V指令另包含有選擇位元(option bit(s)),其長度例如但不限於3位元,用來表示是否將讀取到的至少一資料寫入控制單元100的快取記憶體102中。在一實施例中,若選擇位元為1,則代表至少一資料需要被寫入控制單元100的快取記憶體102中。若選擇位元為0,則代表至少一資料不需要被寫入控制單元100的快取記憶體102中。
在一實施例中,至少一擴展指令另包含有0x3f的運算程式碼(operation code,OP code)。在一實施例中,至少一擴展指令具有以下指令格式:長度為5位元的rd、長度為5位元的rs1、長度為5位元的rs2、長度為7位元的imm、長度為3位元的選擇位元以及長度為7位元的運算程式碼。
在一實施例中,聯合指令為根據控制單元100所執行的至少一擴展指令所產生的一匯流排指令。也就是說,當控制單元100執行至少一擴展指令時,控制單元100將至少一擴展指令中所包含的訊息轉換為匯流排指令,以及標示匯流排指令為聯合指令,以表示匯流排指令為擴展讀取指令ERC與擴展寫入指令EWC協同運作的指令。在一實施例中,透過至少一擴展訊號,控制單元100傳送聯合指令到接收電路200。也就是說,控制單元100可透過至少一擴展訊號,將程式語言函數的處理資訊傳送到處理裝置20,以透過處理裝置20來執行控制單元100本來要執行的運作。在一實施例中,至少一擴展訊號包含有一擴展讀取訊號及一擴展寫入訊號。在一實施例中,控制單元100分別透過擴展讀取訊號及擴展寫入訊號傳送擴展讀取指令ERC及擴展寫入指令EWC到接收電路200。也就是說,聯合指令中的擴展讀取訊號及擴展寫入訊號可透過不同的擴展訊號被傳送到處理裝置20。在一實施例中,若匯流協定為一先進延伸介面(advanced extensible interface,AXI)匯流排協定,控制單元100傳送包含有araddr、arlen、arsize及arvalid的擴展讀取指令ERC到接收電路200。araddr與rs1的功能相同,代表來源地址。arlen為突發長度(burst length),與rs2的功能相同,代表至少一資料的資料長度或資料數量。arsize與imm功能相同,代表至少一資料的資料寬度或資料尺寸。arvalid為有效位元,其中arvalid為1代表擴展讀取指令ERC開始執行。在一實施例中,若匯流協定為先進延伸介面匯流排協定,控制單元100傳送包含有awaddr、awlen、awsize及awvalid的擴展寫入指令EWC到接收電路200。awaddr與rs1功能相同,代表來源地址。awlen為突發長度,與rs2功能相同,代表至少一資料的資料長度或資料數量。awsize與imm功能相同,代表至少一資料的資料寬度或資料尺寸。awvalid為有效位元,其中awvalid為1代表擴展寫入指令EWC開始執行。
在一實施例中,控制單元100使用的至少一擴展訊號為AXI user擴展訊號。在一實施例中,控制單元100傳送擴展讀取指令ERC所使用的擴展讀取訊號為aruser[0]=1,其代表擴展讀取指令ERC為與先進延伸介面寫入通道協同運作的指令。在一實施例中,控制單元100傳送擴展寫入指令EWC所使用的擴展寫入訊號為awuser[0]=1,其代表擴展寫入指令EWC為與先進延伸介面讀取通道協同運作的指令。在一實施例中,擴展讀取訊號及擴展寫入訊號的內容分別包含有一旗標(flag),用來指示程式語言函數的目的地址。
在一實施例中,若聯合指令的資料長度超過突發長度的最大值,控制單元100的一編譯器(compiler)可將聯合指令分割為多個部分,以多次傳輸的方式傳送該聯合指令。在一實施例中,若聯合指令的資料長度超過突發長度的最大值,可透過擴展匯流排的arlen的位元寬度,以增加控制單元100單次傳輸可傳送的資料長度。在一實施例中,若聯合指令的資料長度超過突發長度的最大值,透過擴展訊號(例如,AXI user擴展訊號),控制單元100傳送聯合指令到匯流排。在一實施例中,聯合指令的傳送時機是根據控制單元100的管線(pipeline)或控制單元100的內部架構被決定。在一實施例中,若匯流排處於一空閒狀態,以及控制單元100處於可傳送未處理指令(outstanding command)的一狀態時,控制單元100傳送聯合指令到接收電路200。
在一實施例中,在接收聯合指令後,處理裝置20儲存資料長度,以及傳送電路210傳送擴展讀取指令ERC到從屬裝置。
在一實施例中,控制單元100另傳送一讀取指令到接收電路200。根據讀取指令,傳送電路210傳送至少一資料到控制單元100。也就是說,若讀取到的至少一資料需要被傳送到控制單元100,控制單元100會另外傳送有別於擴展讀取指令ERC的讀取指令(例如,一般讀取指令)到處理裝置20,以從處理裝置20接收至少一資料。在此情形下,控制單元100可立即使用這些接收到的至少一資料。
在一實施例中,在接收電路200接收到聯合指令後,傳送電路220傳送一第二回應訊息到控制單元100。在一實施例中,在寫入電路210將至少一資料寫入程式語言函數對應的目的地址中後,傳送電路220傳送一第二回應訊息到控制單元100。在一實施例中,透過一中斷(interrupt)訊號,傳送電路220傳送一第二回應訊息到控制單元100。
在一實施例中,若至少一資料的資料長度超過突發長度的最大值,處理裝置20可將至少一資料分割為多個部分以執行多次傳輸,以及記錄有關於至少一資料的源地址、目的地址及資料數量,以方便多次傳輸,直到至少一資料被完整傳送為止。
在一實施例中,控制單元100(例如,中央處理單元)傳送擴展讀取指令ERC或擴展寫入指令EWC中其中一者到接收電路200。也就是說,控制單元100可僅使用一個擴展指令來傳送有關於執行程式語言函數的資料到接收電路200。在一實施例中,若控制單元100選擇擴展讀取指令ERC來傳送指令,透過控制單元100的主要讀取介面的一擴展讀取訊號,控制單元100傳送程式語言函數的指令到接收電路200。在一實施例中,若匯流協定為先進延伸介面匯流排協定,以及控制單元100選擇擴展讀取指令ERC來傳送指令,控制單元100透過aruser擴展訊號來傳送程式語言函數的目的地址的資料到接收電路200。在一實施例中,若控制單元100選擇擴展寫入指令EWC來傳送指令,透過控制單元100的主要寫入介面的一擴展寫入訊號,控制單元100傳送程式語言函數的指令到接收電路200。在一實施例中,若匯流協定為先進延伸介面匯流排協定,以及控制單元100選擇擴展寫入指令EWC來傳送指令,控制單元100透過寫入資料通道(例如,wdata channel)來傳送程式語言函數的源地址的資料到接收電路200。
需注意的是,以上實施例中有關控制單元100(例如,中央處理單元)的運作可透過一主要控制單元或一數位訊號處理器來實現,而不限於此,在此不贅述。
第3圖為本發明實施例一處理裝置30的示意圖。處理裝置30可被設置在記憶體控制裝置130中,用來執行控制單元100(例如,中央處理單元)的程式語言函數。處理裝置30可被用來實現第1圖中的處理裝置120。處理裝置30包含有一接收電路300、一傳送電路310、一寫入電路320及一讀取電路330。詳細來說,接收電路300耦接於傳送電路310,以及從一匯流排接收一聯合指令,以協助控制單元100執行程式語言函數,其中聯合指令包含有一擴展讀取指令ERC及一擴展寫入指令EWC。讀取電路330耦接於接收電路300,以及根據擴展讀取指令ERC,從一記憶體區塊中讀取至少一資料。寫入電路320耦接於接收電路300及傳送電路310,以及根據擴展寫入指令EWC,將至少一資料寫入程式語言函數對應的一目的地址中。
根據前述說明,在接收到擴展讀取訊號及擴展寫入訊號後,處理裝置30從一源地址的記憶體區塊中讀取至少一資料,以及將至少一資料寫入目的地址中。換言之,若源地址與目的地址在同一裝置中,處理裝置30可直接進行至少一資料的複製或搬移,而不需要傳送擴展讀取指令ERC到其他裝置以等待其他裝置(例如,從屬裝置、記憶體控制裝置等)的回應。
根據前述說明,本發明提供了一種處理裝置(例如,處理裝置20或處理裝置30),以協助控制單元100執行程式語言函數,提昇程式語言函數的執行速度,同時進一步減少控制單元100的處理時間。因此,提昇程式語言函數的執行速度及控制單元100的執行效率的問題可獲得解決。
在一實施例中,聯合指令為根據控制單元100(例如,中央處理單元)所執行的至少一擴展指令所產生的一匯流排指令。也就是說,當控制單元100執行至少一擴展指令時,控制單元100將至少一擴展指令中所包含的訊息轉換為匯流排指令,以及標示匯流排指令為聯合指令,以表示匯流排指令為擴展讀取指令ERC與擴展寫入指令EWC協同運作的指令。在一實施例中,透過至少一擴展訊號,匯流排傳送聯合指令到接收電路300。也就是說,匯流排可透過至少一擴展訊號,將程式語言函數的處理資訊傳送到處理裝置30,以透過處理裝置30來執行控制單元100本來要執行的運作。在一實施例中,至少一擴展訊號包含有一擴展讀取訊號及一擴展寫入訊號。在一實施例中,匯流排分別透過擴展讀取訊號及擴展寫入訊號傳送擴展讀取指令ERC及擴展寫入指令EWC到接收電路300。也就是說,聯合指令中的擴展讀取訊號及擴展寫入訊號可透過不同的擴展訊號被傳送到處理裝置30。
在一實施例中,若匯流協定為一先進延伸介面,控制單元100傳送包含有araddr、arlen、arsize及arvalid的擴展讀取指令ERC到匯流排。接著,匯流排傳送該擴展讀取指令ERC到接收電路300。araddr代表來源地址。arlen為突發長度(burst length),代表至少一資料的資料長度或資料數量。arsize代表至少一資料的資料寬度或資料尺寸。arvalid為有效位元,其中若arvalid為1則代表擴展讀取指令ERC開始執行。在一實施例中,若匯流協定為先進延伸介面匯流排協定,控制單元100傳送包含有awaddr、awlen、awsize及awvalid的擴展寫入指令EWC到匯流排。接著,匯流排傳送該擴展寫入指令EWC到接收電路300。awaddr代表來源地址。awlen為突發長度,代表至少一資料的資料長度或資料數量。awsize代表至少一資料的資料寬度或資料尺寸。awvalid為有效位元,其中若awvalid為1則代表擴展寫入指令EWC開始執行。
在一實施例中,在接收電路300接收到聯合指令後,傳送電路320傳送一第二回應訊息到匯流排,以透過匯流排傳送第二回應訊息到控制單元100(例如,中央處理單元)。在一實施例中,在寫入電路310將至少一資料寫入程式語言函數對應的目的地址中後,傳送電路320傳送一第二回應訊息到匯流排,以透過匯流排傳送第二回應訊息到控制單元100。在一實施例中,透過一中斷訊號,傳送電路320傳送一第二回應訊息到匯流排,以透過匯流排傳送第二回應訊息到控制單元100。
在一實施例中,匯流排傳送擴展讀取指令ERC或擴展寫入指令EWC中其中一者到接收電路300。也就是說,控制單元100可僅使用一個擴展指令來傳送有關於執行程式語言函數的資料到匯流排,以及匯流排傳送擴展指令到接收電路300。在一實施例中,若控制單元100選擇擴展讀取指令ERC來傳送指令,透過控制單元100的主要讀取介面的一擴展讀取訊號,控制單元100傳送程式語言函數的指令到匯流排,以及匯流排透過擴展讀取訊號傳送該指令到接收電路300。在一實施例中,若匯流協定為先進延伸介面匯流排協定,以及控制單元100選擇擴展讀取指令ERC來傳送指令,控制單元100透過aruser擴展訊號來傳送程式語言函數的目的地址的資料到匯流排,以及匯流排透過aruser擴展訊號來傳送該資料到接收電路300。在一實施例中,若控制單元100選擇擴展寫入指令EWC來傳送指令,透過控制單元100的主要寫入介面的一擴展寫入訊號,控制單元100傳送程式語言函數的指令到匯流排,以及匯流排透過擴展寫入訊號傳送該指令到接收電路300。在一實施例中,若匯流協定為先進延伸介面匯流排協定,以及控制單元100選擇擴展寫入指令EWC來傳送指令,控制單元100透過寫入資料通道(例如,wdata channel)來傳送程式語言函數的源地址的資料到匯流排,以及匯流排透過寫入資料通道來傳送該資料到接收電路300。
用於處理裝置20的實施例可被應用於處理裝置30,在此不贅述。
處理裝置120協助控制單元100的程式語言函數的運作可被歸納為一流程40,如第4圖所示,以及包含有以下步驟:
步驟S400:開始。
步驟S402:從一控制單元或一資料交換介面接收一指令。
步驟S404:判斷該指令是否為一聯合指令。
步驟S406:若該指令不是該聯合指令,處理該指令。在處理該指令後,返回步驟S402。
步驟S408:若該指令為該聯合指令,等待相對應該聯合指令的一擴展讀取指令或一擴展寫入指令。
步驟S410:在接收該擴展讀取指令或該擴展寫入指令後,儲存一傳輸設定及開始讀取至少一資料。
步驟S412:在讀取該至少一資料後,將該至少一資料寫入該程式語言函數對應的一目的地址中。
步驟S414:判斷該至少一資料是否被完成寫入。若該至少一資料未被完成寫入,返回步驟S410。
步驟S416:結束。
流程40的詳細說明及變化可參考前述說明,在此不贅述。
上述實施例中處理裝置20的運作可被歸納為一流程50,如第5圖所示。流程50被用於處理裝置20,以及包含有以下步驟:
步驟S500:開始。
步驟S502:從該中央處理單元接收一聯合指令,以協助該中央處理單元執行該程式語言函數,其中該聯合指令包含有一擴展讀取指令及一擴展寫入指令。
步驟S504:在接收到該聯合指令後,傳送該擴展讀取指令到一從屬裝置,以從該從屬裝置接收回應該擴展讀取指令的一回應訊息,其中該回應訊息包含有該從屬裝置從一記憶體區塊中讀取的至少一資料。
步驟S506:在接收到該回應訊息後,根據該擴展寫入指令,將該至少一資料寫入該程式語言函數對應的一目的地址中。
步驟S508:結束。
流程50的詳細說明及變化可參考前述說明,在此不贅述。
綜上所述,以協助控制單元100(例如,中央處理單元)執行程式語言函數,以及提昇程式語言函數的執行速度,進一步減少控制單元100的處理時間。因此,提昇程式語言函數的執行速度及中央處理單元的執行效率的問題可獲得解決。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:處理系統 100:控制單元 101:匯流協定介面 102:快取記憶體 103:主要讀取介面 104:主要寫入介面 110:資料交換介面 120,20,30:處理裝置 130:記憶體控制裝置 140:周邊設備 200,300:接收電路 210,310:傳送電路 220,320:寫入電路 330:讀取電路 40,50:流程 400,402,404,406,408,410,412,414,416,500,502,504,506,508:步驟 ERC,EWC:擴展指令
第1圖為本發明實施例一處理系統的示意圖。 第2圖為本發明實施例一處理裝置的示意圖。 第3圖為本發明實施例一處理裝置的示意圖。 第4圖為本發明實施例一流程的流程圖。 第5圖為本發明實施例一流程的流程圖。
10:處理系統 100:控制單元 101:匯流協定介面 102:快取記憶體 103:主要讀取介面 104:主要寫入介面 110:資料交換介面 120:處理裝置 130:記憶體控制裝置 140:周邊設備 ERC,EWC:擴展指令

Claims (10)

  1. 一種處理裝置,用於一匯流排(bus)中,用來執行一中央處理單元(central processing unit,CPU)的一程式語言函數,包含有: 一接收電路,用來從該中央處理單元接收一聯合指令,以協助該中央處理單元執行該程式語言函數,其中該聯合指令包含有一擴展讀取(read)指令及一擴展寫入(write)指令; 一傳送電路,耦接於該接收電路,用來傳送該擴展讀取指令到一從屬裝置,以透過該接收電路從該從屬裝置接收回應該擴展讀取指令的一第一回應訊息,其中該第一回應訊息包含有該從屬裝置從一記憶體區塊中讀取的至少一資料;以及 一寫入電路,耦接於該接收電路及該傳送電路,用來根據該擴展寫入指令,將該至少一資料寫入該程式語言函數對應的一目的地址中。
  2. 如請求項1所述的處理裝置,其中該聯合指令為根據該中央處理單元所執行的至少一擴展指令所產生的一匯流排指令。
  3. 如請求項1所述的處理裝置,其中透過至少一擴展訊號,該中央處理單元傳送該聯合指令到該接收電路。
  4. 如請求項1所述的處理裝置,其中該中央處理單元另傳送一讀取指令到該接收電路。
  5. 如請求項4所述的處理裝置,其中根據該讀取指令,該傳送電路傳送該至少一資料到該中央處理單元。
  6. 如請求項1所述的處理裝置,其中在該接收電路接收到該聯合指令後、在該寫入電路將該至少一資料寫入該程式語言函數對應的該目的地址後,或者透過一中斷(interrupt)訊號,該傳送電路傳送一第二回應訊息到該中央處理單元。
  7. 一種處理裝置,用於一記憶體控制裝置中,用來執行一中央處理單元(central processing unit,CPU)的一程式語言函數,包含有: 一傳送電路; 一接收電路,耦接於該傳送電路,用來從一匯流排(bus)接收一聯合指令,以協助該中央處理單元執行該程式語言函數,其中該聯合指令包含有一擴展讀取(read)指令及一擴展寫入(write)指令; 一讀取電路,耦接於該接收電路,用來根據該擴展讀取指令,從一記憶體區塊中讀取至少一資料;以及 一寫入電路,耦接於該傳送電路及該讀取電路,用來根據該擴展寫入指令,將該至少一資料寫入該程式語言函數對應的一目的地址中。
  8. 如請求項7所述的處理裝置,其中透過至少一擴展訊號,該匯流排傳送該聯合指令到該接收電路。
  9. 如請求項7所述的處理裝置,其中在該接收電路接收到該聯合指令後、在該寫入電路將該至少一資料寫入該程式語言函數對應的該目的地址後,或者透過一中斷(interrupt)訊號,該傳送電路傳送一回應訊號到該匯流排,以透過該匯流排傳送該回應訊號到該中央處理單元。
  10. 一種處理程式語言的方法,用於一處理裝置,用來執行一中央處理單元(central processing unit,CPU)的一程式語言函數,包含有: 從該中央處理單元接收一聯合指令,以協助該中央處理單元執行該程式語言函數,其中該聯合指令包含有一擴展讀取(read)指令及一擴展寫入(write)指令; 在接收到該聯合指令後,傳送該擴展讀取指令到一從屬裝置,以從該從屬裝置接收回應該擴展讀取指令的一回應訊息,其中該回應訊息包含有該從屬裝置從一記憶體區塊中讀取的至少一資料;以及 在接收到該回應訊息後,根據該擴展寫入指令,將該至少一資料寫入該程式語言函數對應的一目的地址中。
TW110130253A 2021-05-14 2021-08-17 處理程式語言函數的裝置及方法 TWI792500B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110528812.3A CN115344244A (zh) 2021-05-14 2021-05-14 处理程序语言函数的装置及方法
CN202110528812.3 2021-05-14

Publications (2)

Publication Number Publication Date
TW202244726A TW202244726A (zh) 2022-11-16
TWI792500B true TWI792500B (zh) 2023-02-11

Family

ID=83946840

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110130253A TWI792500B (zh) 2021-05-14 2021-08-17 處理程式語言函數的裝置及方法

Country Status (3)

Country Link
US (1) US11714608B2 (zh)
CN (1) CN115344244A (zh)
TW (1) TWI792500B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI299135B (en) * 2005-03-08 2008-07-21 Realtek Semiconductor Corp Microprocessor system having clock controller and method thereof
CN104603748A (zh) * 2012-09-27 2015-05-06 英特尔公司 具有多个核、共享的核扩展逻辑及共享的核扩展利用指令的处理器
US9529707B2 (en) * 2013-10-24 2016-12-27 Fujitsu Limited Apparatus and method for reducing read-modify-write cycles by combining unaligned write commands
TW202127241A (zh) * 2020-01-14 2021-07-16 瑞昱半導體股份有限公司 處理器電路以及資料處理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870625A (en) * 1995-12-11 1999-02-09 Industrial Technology Research Institute Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command
US7203780B2 (en) * 2005-02-22 2007-04-10 Kabushiki Kaisha Toshiba System and method for facilitating communication between devices on a bus using tags
US7373444B2 (en) * 2005-04-15 2008-05-13 Kabushiki Kaisha Toshiba Systems and methods for manipulating entries in a command buffer using tag information
JP2013257679A (ja) * 2012-06-12 2013-12-26 Sony Corp 情報処理装置および方法、並びに、プログラム
CN103578566B (zh) * 2012-07-23 2016-08-24 群联电子股份有限公司 存储器存储装置及其修复方法
US10353626B2 (en) * 2016-02-03 2019-07-16 Samsung Electronics Co., Ltd. Buffer memory management method and write method using the same
US20170293556A1 (en) * 2016-04-07 2017-10-12 Imagination Technologies Limited Read discards in a processor system with write-back caches
CN106371807B (zh) * 2016-08-30 2019-03-19 华为技术有限公司 一种扩展处理器指令集的方法及装置
US10719448B2 (en) * 2017-06-13 2020-07-21 Alibaba Group Holding Limited Cache devices with configurable access policies and control methods thereof
CN110083569A (zh) * 2019-04-30 2019-08-02 芯来智融半导体科技(上海)有限公司 一种适用于risc-v架构的协处理器接口
CN111400986B (zh) * 2020-02-19 2024-03-19 西安智多晶微电子有限公司 一种集成电路计算设备及计算处理系统
JP2022050016A (ja) * 2020-09-17 2022-03-30 キオクシア株式会社 メモリシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI299135B (en) * 2005-03-08 2008-07-21 Realtek Semiconductor Corp Microprocessor system having clock controller and method thereof
CN104603748A (zh) * 2012-09-27 2015-05-06 英特尔公司 具有多个核、共享的核扩展逻辑及共享的核扩展利用指令的处理器
US9529707B2 (en) * 2013-10-24 2016-12-27 Fujitsu Limited Apparatus and method for reducing read-modify-write cycles by combining unaligned write commands
TW202127241A (zh) * 2020-01-14 2021-07-16 瑞昱半導體股份有限公司 處理器電路以及資料處理方法

Also Published As

Publication number Publication date
US11714608B2 (en) 2023-08-01
TW202244726A (zh) 2022-11-16
US20220365757A1 (en) 2022-11-17
CN115344244A (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
JP5185289B2 (ja) 内容終了型dma
CN100440184C (zh) 一种能同时进行读写操作的dma控制器及传输方法
JP6602579B2 (ja) 半導体装置およびシステム
CN112506827A (zh) 一种基于adma控制器的数据传输方法、装置及设备
CN112470136A (zh) 直接存储器存取控制器
CN105677598A (zh) 基于i2c接口快速读取多个mems传感器数据的模块和方法
TW200521678A (en) Virtual first-in, first-out DMA device
TW202244726A (zh) 處理程式語言函數的裝置及方法
CN111177048A (zh) 一种ahb总线的设备及其进行数据流传输的方法
KR100633742B1 (ko) 주변 장치로부터 데이터 전송 크기를 자동으로 갱신하는직접 메모리 액세스 제어 장치 및 방법
JP3824122B2 (ja) Dma装置
US20030056037A1 (en) Hardware chain pull
CN110968270B (zh) 一种Flash空间的高效存储方法及装置
TWI258077B (en) Method of DMA and program DMA controller for card reader
JPH08339290A (ja) データ処理システムにおいてデータ・ストリーム内にアドレスを挿入する装置および方法
KR20060004829A (ko) 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법
JP2006004340A (ja) Dma転送制御装置
TWI799258B (zh) 處理程式語言函數的裝置及方法
TWI887055B (zh) 一種用於嵌入式多媒體卡增進讀取效能的方法與裝置
US12475063B2 (en) Data transmission device with FIFO circuits for reading and writing operations and method
JP5656589B2 (ja) データ転送装置、データ転送方法及びデータ転送プログラム
JP4228275B2 (ja) 情報処理装置
JPH09305530A (ja) Dmaコントローラ
JPH11327798A (ja) データ転送制御装置
JP3650072B2 (ja) データ記憶装置およびこれを用いたデータ伝送システム