Asymmetrical processor memory architecture
Claim Score by NHIP
Abstract
An asymmetrical processing system is provided. The processor has a vector unit comprised of one or more computational units coupled with a vector memory space and a scalar unit coupled with a data memory space and the vector memory space, the scalar unit accessing one or more memory locations within the vector memory space.

Term
11.2 yearsto projected expiry
Projected expiry 4 December 2037, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
22 claims: 2 independent, 20 dependent
- 1Broadest claimClaim Score 81, broad(NHIP)An asymmetrical processing system comprising:a vector unit comprised of one or more computational units coupled with a vector memory space;and a scalar unit coupled with a data memory space and the vector memory space, the scalar unit accessing one or more memory locations within the vector memory space.
- 19A method for accessing memory by a scalar unit of an asymmetrical processing system comprising:determining data memory ranges associated in a data memory space with vector memory of one or more computational units associated with a vector unit each computational unit having an associated range of memory locations in the vector memory;initiating an access to memory location associated with vector memory;determining a memory location in vector memory;accessing data in the vector memory location;and wherein a vector unit can concurrently access the vector memory location with the scalar unit.
Independent claims2
80 paragraphs in 4 sections, as filed
TECHNICAL FIELD
0001The present disclosure relates to a processor with the ability to issue vector and scalar instructions concurrently.
BACKGROUND
0002Single instruction multiple data (SIMD) processors may include a scalar processing unit as well as one or more vector processing units that can execute an instruction on multiple pieces of information at once. The use of a vector processing unit can provide improved processing efficiencies particularly when the vector processing capability is matched to the processing task provided. The different processing units may each be associated with their own respective memory space for storing data to be processed. If data is required to be acted upon by the scalar processing unit and one or more of the vector processing units, the data must be transferred between the respective memory spaces.
0003It may be desirable to provide a processor capable of efficiently accessing data by both a scalar processing unit and at least one vector processing unit.
BRIEF DESCRIPTION OF THE DRAWINGS
0004The foregoing and other advantages of the disclosure will become apparent upon reading the following detailed description and upon reference to the drawings.
0005<figref idref="DRAWINGS">FIG. 1</figref> depicts an asymmetrical processor;
0006<figref idref="DRAWINGS">FIG. 2</figref> depicts a system with contiguous data memory (DM) and vector memory (VM);
0007<figref idref="DRAWINGS">FIG. 3</figref> is an example 32 Kilo Byte (KB) memory space addressed in slice mode;
0008<figref idref="DRAWINGS">FIG. 4</figref> is an example 32 KB memory space addressed in column mode;
0009<figref idref="DRAWINGS">FIG. 5</figref> is an example with only a portion of the VM shared;
0010<figref idref="DRAWINGS">FIG. 6</figref> shows an example where the scalar unit (SU) can access the DM and VM concurrently;
0011<figref idref="DRAWINGS">FIG. 7</figref> shows an example where the SU can access the DM and multiple VM concurrently;
0012<figref idref="DRAWINGS">FIG. 8</figref> depicts a method of data memory access in a asymmetrical processor;
0013<figref idref="DRAWINGS">FIG. 9</figref> depicts another method of retrieving data with a using an asymmetrical processor memory architecture; and
0014<figref idref="DRAWINGS">FIG. 10</figref> depicts another method of retrieving data with a using an asymmetrical processor memory architecture having reserved memory allocations.
0015While the present disclosure is susceptible to various modifications and alternative forms, specific embodiments or implementations have been shown by way of example in the drawings and will be described in detail herein. It should be understood, however, that the disclosure is not intended to be limited to the particular forms disclosed. Rather, the disclosure is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of an invention as defined by the description and appended claims.
DETAILED DESCRIPTION
0016In accordance with the present disclosure there is provided an asymmetrical processing system comprising: a vector unit comprised of one or more computational units coupled with a vector memory space; and a scalar unit coupled with a data memory space and the vector memory space, the scalar unit accessing one or more memory locations within the vector memory space.
0017In a further embodiment of the asymmetrical processing system, the data memory space and vector memory space is contiguous.
0018In a further embodiment of the asymmetrical processing system, the scalar unit accesses the data memory space and vector memory space concurrently.
0019In a further embodiment of the asymmetrical processing system, the scalar unit accesses the data memory space and the one or more computational units access the vector memory space concurrently.
0020In a further embodiment, the asymmetrical processing system further comprises: a program memory space storing instructions for the scalar unit and vector unit; and instruction decode logic for decoding an instruction retrieved from the program memory space.
0021In a further embodiment of the asymmetrical processing system, the scalar unit and the vector unit operate on a decoded instruction in parallel.
0022In a further embodiment, the asymmetrical processing system further comprises a configurable memory access mode to determine a slice or a column memory access mode.
0023In a further embodiment of the asymmetrical processing system, the access mode is determined by access bits or register bits.
0024In a further embodiment of the asymmetrical processing system, the scalar unit accesses the vector memory in slice mode across a plurality of vector memory locations each associated with one of the one or more computational units.
0025In a further embodiment of the asymmetrical processing system, the scalar unit accesses the vector memory in column mode wherein a vector memory location associated with one of the one or more computational units is accessed.
0026In a further embodiment of the asymmetrical processing system, the vector memory is divided into a plurality of sub-blocks allowing the scalar unit to access the sub-blocks concurrently.
0027In a further embodiment of the asymmetrical processing system, only a portion of the vector memory is accessible by the scalar unit.
0028In a further embodiment of the asymmetrical processing system, the portion of vector memory is defined by a predetermined threshold.
0029In a further embodiment of the asymmetrical processing system, the scalar unit accesses the data memory space and a plurality of vector memory space concurrently.
0030In a further embodiment of the asymmetrical processing system, the scalar unit accesses the data memory space, a plurality of vector memory space, and the one or more computational units access the vector memory space.
0031In a further embodiment of the asymmetrical processing system, the vector memory space is allocated in software.
0032In a further embodiment of the asymmetrical processing system, the vector memory space is hard coded.
0033In a further embodiment of the asymmetrical processing system, the memory access method is determined at start up of the processing system.
0034In accordance with the present disclosure there is further provided a method for accessing memory by a scalar unit of an asymmetrical processing system comprising: determining data memory ranges associated in a data memory space with vector memory of one or more computational units associated with a vector unit each computational unit having an associated range of memory locations in the vector memory; initiating an access to memory location associated with vector memory; determining a memory location in vector memory; accessing data in the vector memory location; and wherein a vector unit can concurrently access the vector memory location with the scalar unit.
0035In a further embodiment of the method, the scalar unit has memory allocated in the data memory space reserved from the vector memory.
0036In a further embodiment of the method, the data memory space and vector memory space is contiguous.
0037In a further embodiment of the method, the scalar unit accesses the data memory space and vector memory space concurrently.
0038In a further embodiment of the method, the scalar unit accesses the data memory space and the one or more computational units access the vector memory space concurrently.
0039In a further embodiment, the method further comprises a configurable memory access mode to determine a slice or a column memory access mode.
0040In a further embodiment of the method, the access mode is determined by access bits or register bits.
0041In a further embodiment of the method, the scalar unit accesses the vector memory in slice mode across a plurality of vector memory locations each associated with one of a plurality of computational units.
0042In a further embodiment of the method, the scalar unit accesses the vector memory in column mode wherein a vector memory location associated with one of a plurality of computational units is accessed.
0043In a further embodiment of the method, the vector memory is divided into a plurality of sub-blocks allowing the scalar unit to access the sub-blocks concurrently.
0044In a further embodiment of the method, only a portion of the vector memory is accessible by the scalar unit.
0045In a further embodiment of the method, the portion of vector memory is defined by a predetermined threshold.
0046In a further embodiment of the method, the scalar unit accesses the data memory space and a plurality of vector memory space concurrently.
0047In a further embodiment of the method, the scalar unit accesses the data memory space, a plurality of vector memory space, and the one or more computational units access the vector memory space.
0048In a further embodiment of the method, the vector memory space is allocated in software.
0049In a further embodiment of the method, the vector memory space is hard coded.
0050In a further embodiment of the method, the memory access method is determined at start up.
0051The foregoing and additional aspects and embodiments of the present disclosure will be apparent to those of ordinary skill in the art in view of the detailed description of various embodiments and/or aspects, which is made with reference to the drawings, a brief description of which is provided next.
0052An asymmetrical processor is capable of efficiently processing asymmetrical data types, vector and scalar, in parallel or sequentially in the same memory space. The processor comprises a Scalar Unit (SU) <b>103</b> and one or more computational units (CU) <b>104</b>-<b>1</b> . . . <b>104</b>-<i>n </i>(referred to collectively as CUs <b>104</b>) as shown in <figref idref="DRAWINGS">FIG. 1</figref>. The SU and CUs share program memory (PM) <b>101</b> and instruction decode (ID) logic <b>102</b>, and operate in parallel. The CUs <b>104</b> and SU <b>103</b> are generally separate processor engines with separate memory spaces, and the CUs <b>104</b> and SU <b>103</b> can access their separate memory spaces concurrently, which require data to be moved from the vector unit memory (VM) <b>106</b>-<b>1</b> . . . <b>106</b>-<i>n </i>to the scalar unit memory, also referred to as data memory (DM) <b>105</b> or vice versa. The different processors may not even be on the same silicon die.
0053An example application for an asymmetrical processor is image processing is a sequence that uses scalar and vector processing alternatively. When the function involves large quantities of data movement back and forth between vector and scalar processors, a lot of time and power is spent moving data between DM <b>105</b> and VM <b>106</b>-<b>1</b> . . . <b>106</b>-<i>n </i>which slows down the processing.
0054When memory requirements are greater than memory available external memory access is required. An example sequence of events could be:
0055Load CU data from external memory
0056Process using CUs
0057Store to external memory
0058Load SU data from external memory
0059Process using SU
0060Store to external memory
0061Load CU data from external memory
0062etc . . .
0063The resulting data moves are time and power consuming thereby removing time and resources away from the processing functions. If a lot of data movement is required the limiting factor in a design might not be the (processing power)/(processing budget) or (MHz)/mW but the time/power (sec/mW) it takes to do the data movement. Thus, there is a need to reduce data movement when performing processing functions. One approach is to increase the memory bandwidth by increasing the data width or by using a newer/faster memory, however, it is not scalable.
0064In the embodiment shown in <figref idref="DRAWINGS">FIG. 2</figref> the SU <b>103</b> has a direct connection to both contiguous data memory (DM) <b>201</b> and vector memory (VM)<b>202</b>-<b>1</b> . . . <b>202</b>-<i>n </i>using a single memory port <b>220</b>. The SU <b>103</b> can fully access all of the memory spaces.
0065The PM space <b>101</b> is shared by both vector <b>104</b> and scalar units <b>103</b>. <figref idref="DRAWINGS">FIG. 2</figref> shows the connection between the PM <b>101</b> and the shared instruction decode block <b>102</b> that controls the SU <b>103</b> and CUs <b>104</b>. The program memory is typically a multiple of 32-bits wide but it can be larger or smaller as required by one's instruction encoding.
0066The DM space <b>201</b> is the area of memory that is addressable by the scalar processor <b>103</b>. In the embodiment, the SU <b>103</b> has its own dedicated memory space and the ability to directly access the VM <b>202</b>-<b>1</b> . . . <b>202</b>-<i>n </i>via a memory port <b>220</b>. When the SU <b>103</b> and one of the CUs <b>104</b> attempt to address the same space in the VM <b>202</b>, arbitration is used to provide access. To improve concurrent access to VM <b>202</b>, the VM <b>202</b> can be split into multiple separate memories. For example, with 4 KB per each of the CUs <b>104</b>, the SU <b>103</b> and CUs <b>104</b> can access two blocks of 2 KB memories or four blocks of 1 KB memories concurrently. Because the VM <b>202</b> is broken into two or four or more sub-blocks, this implementation also allows the CUs <b>104</b> to perform a double, quadruple or multiple load from VM <b>202</b> in relation to the number of sub-blocks used.
0067The VM space <b>202</b>-<b>1</b> . . . <b>202</b>-<i>n </i>is only the memory space associated with each of the CUs <b>104</b>. It may be addressed in Single instruction, multiple data (SIMD) fashion (all get the same address) or with a vector address where each CU <b>104</b> can index separately into its own memory space. In the embodiment described herein, the SU <b>103</b> and CUs <b>104</b> operate on the data without having to move it in to or out of the processor or on/off chip. Further, the asymmetrical processor architecture allows both scalar and vector processing to be executed in parallel, or sequentially using the same memory space.
0068As another embodiment, separate scalar and vector processors can be used as opposed to single asymmetrical processor acting on the same memory space.
0069Reducing data movement in and out of a processor(s) system can maximize the efficiency of both the processor and the memory bandwidth. By reducing the on/off chip data movement the efficiency of the memory interface and on-chip bus is optimized.
0070The SU <b>103</b> can access the vector memory <b>202</b>-<b>1</b> . . . <b>202</b>-<i>n </i>in column mode. As an example with a 32 KB memory space and eight vector memory, referring to <figref idref="DRAWINGS">FIG. 3</figref>, the SU <b>103</b> accesses one VM <b>202</b> block <b>302</b> at a time, e.g. 0-4K for VM1 <b>202</b>-<b>1</b>, 4K-8K for VM2 <b>202</b>-<b>2</b>, 8K-12K for VM3 <b>202</b>-<b>3</b>, etc . . . Extending to n VM, the end address <b>302</b> would be ((n*depth)−1), where depth is the depth of the memory address. As would be apparent the size of the address space at each location can vary depending on the implementation.
0071As another embodiment, the SU <b>103</b> can access the vector memory <b>202</b>-<b>1</b> . . . <b>202</b>-<i>n </i>in slice mode <b>402</b>. Referring to <figref idref="DRAWINGS">FIG. 4</figref> which provides an example with 8 CUs and 32 KB memory, the SU <b>103</b> accesses a memory location in each CU <b>104</b> sequentially; address 0 (zero) accesses the first address of VM1 <b>202</b>-<b>1</b>, address 1 (one) the first address of VM2 <b>202</b>-<b>2</b>, address 2 (two) the first address of VM3 <b>202</b>-<b>3</b>, etc. When address 7 (seven) is reached, the SU <b>103</b> wraps back to VM1 <b>202</b>-<b>1</b> and accesses its second address location. As would be apparent the size of the address space at each location can vary depending on the implementation. The memory access using column mode or page mode can be provided concurrently using address bits to determine which type of access (column/slice) that will be utilized to access the shared memory. Alternatively a single address range could be utilized, and register bits can then be used to switch between the two modes.
0072Referring to <figref idref="DRAWINGS">FIG. 5</figref>, as another embodiment, only a portion of the vector memory can be shared with the SU <b>103</b>. A pre-determined threshold <b>550</b> is used to limit the available addressing space in the vector memory to reserve vector memory space <b>560</b>-<b>1</b> . . . <b>560</b>-<i>n </i>for the CUs <b>104</b>. The remaining memory space <b>570</b>-<b>1</b> . . . <b>570</b>-<i>n </i>is accessible to SU <b>103</b>. The reserved memory can be a fixed range of memory or may be configured by the processor depending on programming requirements. For example depending on the processing requirements of the CUs <b>104</b> or SU <b>103</b> based on the type of data being processed memory may be reserved for CU processing requirements.
0073Referring to <figref idref="DRAWINGS">FIG. 6</figref>, the SU <b>103</b> can use two separate memory ports <b>601</b> and <b>602</b> to access the DM <b>201</b> and the VM <b>202</b> concurrently and obtain two values in parallel. Alternatively, the memory may be accessed by a multiplexer configuration to enable selective access. Alternatively, as per <figref idref="DRAWINGS">FIG. 7</figref>, the SU <b>103</b> can perform a read a memory port <b>702</b>-<b>1</b> . . . <b>702</b>-<i>n </i>to access each VM <b>202</b>-<b>1</b> . . . <b>202</b>-<i>n </i>and DM <b>201</b> concurrently. The access of each CU <b>104</b> may have a fixed relationship with a block of VM <b>202</b>. Alternatively the CU <b>104</b> may be multiplexed to the VM <b>202</b> blocks to enable reallocation of memory locations. Similarly the based upon the interface between the CU <b>104</b> and VM <b>202</b> the memory access may allocated to different memory locations within the DM <b>201</b>
0074The memory CU memory allocation may be fixed in the processor or alternatively may be configurable on startup of the processor.
0075<figref idref="DRAWINGS">FIG. 8</figref> depicts a method of retrieving data using an asymmetrical processor memory architecture. The method <b>800</b> determines the DM ranges allocated for VM for each CU (<b>802</b>). The SU initiates a VM access request to a location associated with a CU (<b>804</b>). The associated VM memory addresses in DM is determined (<b>806</b>). The memory can then be accessed from the VM memory location using the determined address (<b>808</b>).
0076<figref idref="DRAWINGS">FIG. 9</figref> depicts another method of retrieving data using an asymmetrical processor memory architecture. The method <b>900</b> commences with the SU initiating a VM access request to a location associated with a CU (<b>902</b>). If the memory access is configured in a slice configuration (Slice at <b>904</b>) memory ranges can be accessed sequentially (<b>906</b>). The associated VM memory addresses in DM is determined (<b>910</b>). The memory is read from the VM memory location using the determined address (<b>912</b>). If the memory access is configured in a column configuration (Column at <b>904</b>) memory ranges can be accessed consecutively (<b>908</b>). The column memory address can coincide with VM memory addresses associated with particular CUs. The associated VM memory addresses in DM is determined (<b>910</b>). The memory can be access at the VM memory location using the determined address (<b>912</b>).
0077<figref idref="DRAWINGS">FIG. 10</figref> depicts another method of retrieving data using an asymmetrical processor memory architecture having reserved memory allocations. The method <b>1000</b> commences determining reserved vector memory allocation for the VM locations (<b>1002</b>). The memory may be allocated as a portion of the available VM memory locations (<b>1004</b>). From the allocated portion memory addresses can be determined that are available for the SU (<b>1006</b>). The DM memory ranges can be then be determined for the VM allocation to the SU (<b>1008</b>). A memory access is then initiated by the SU (<b>1010</b>) the associated VM memory addresses in DM is determined (<b>1012</b>). The memory may then be access at the VM memory location using the determined address (<b>1014</b>).
0078Although the algorithms described above including those with reference to the foregoing flow charts have been described separately, it should be understood that any two or more of the algorithms disclosed herein can be combined in any combination. Any of the methods, algorithms, implementations, or procedures described herein can include machine-readable instructions for execution by: (a) a processor, (b) a controller, and/or (c) any other suitable processing device. Any algorithm, software, or method disclosed herein can be embodied in software stored on a non-transitory tangible medium such as, for example, a flash memory, a CD-ROM, a hard drive, a digital versatile disk (DVD), or other memory devices, but persons of ordinary skill in the art will readily appreciate that the entire algorithm and/or parts thereof could alternatively be executed by a device other than a controller and/or embodied in firmware or dedicated hardware in a well known manner (e.g., it may be implemented by an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable logic device (FPLD), discrete logic, etc.). Also, some or all of the machine-readable instructions represented in any flowchart depicted herein can be implemented manually as opposed to automatically by a controller, processor, or similar computing device or machine. Further, although specific algorithms are described with reference to flowcharts depicted herein, persons of ordinary skill in the art will readily appreciate that many other methods of implementing the example machine readable instructions may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.
0079It should be noted that the algorithms illustrated and discussed herein as having various modules which perform particular functions and interact with one another. It should be understood that these modules are merely segregated based on their function for the sake of description and represent computer hardware and/or executable software code which is stored on a computer-readable medium for execution on appropriate computing hardware. The various functions of the different modules and units can be combined or segregated as hardware and/or software stored on a non-transitory computer-readable medium as above as modules in any manner, and can be used separately or in combination.
0080While particular implementations and applications of the present disclosure have been illustrated and described, it is to be understood that the present disclosure is not limited to the precise construction and compositions disclosed herein and that various modifications, changes, and variations can be apparent from the foregoing descriptions without departing from the spirit and scope of an invention as defined in the appended claims.
Contents4
11 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11
Every citation, both ways
| Document | Relation | Office | Category | Cited during |
|---|---|---|---|---|
| US9760446B2 | Cited by | United States of America | – | Search report |
| US2015363270A1 | Cited by | United States of America | – | Pre-grant |
| US2016246534A1 | Cited by | United States of America | – | Pre-grant |
| US9658793B2 | Cited by | United States of America | – | Search report |
| US9858201B2 | Cited by | United States of America | – | Applicant |
| US5303200A | Cites | United States of America | A | Pre-grant |
| US5303200A | Cites | United States of America | A | Search report |
| US5603055A | Cites | United States of America | A | Search report |
| US5603055A | Cites | United States of America | A | Pre-grant |
| US8510534B2 | Cites | United States of America | A | Pre-grant |
| US8510534B2 | Cites | United States of America | A | Search report |
2 members in 1 office; this record represents the family
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 201462061335 | United States of America | P |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2016103784A1 | United States of America | A1 | |
| US11656874B2 | United States of America | B2 |
129 transactions on the USPTO file
Allowed after 4 non-final rejections, 4 final rejections and 4 RCEs.
- Non-final rejections
- 4
- Final rejections
- 4
- RCEs
- 4
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Electronic ReviewELC_RVW | ELC_RVW | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Email NotificationEML_NTR | EML_NTR | |
| Recordation of Patent eGrantEPG/ | EPG/ | |
| Mail Patent eGrant NotificationMEPG_NTF | MEPG_NTF | |
| Patent eGrant NotificationEPG_NTF | EPG_NTF | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Supplemental Papers - Oath or DeclarationC600 | C600 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Incoming Letter Pertaining to the DrawingsLTDR | LTDR | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| New or Additional Drawing FiledC614 | C614 | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| After Final Consideration Program Amendment too ExtensiveAFNE | AFNE | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| PILOT- Request for After Final Consideration ProgramRAFC | RAFC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF |
29 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| Information on status: patent application and granting procedure in generalADVISORY ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| Information on status: patent application and granting procedure in generalADVISORY ACTION MAILEDSTPP | STPP | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| Information on status: patent application and granting procedure in generalADVISORY ACTION MAILEDSTPP | STPP | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| AssignmentAS | AS | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160103784
- Application
- 14878474
Titles
- English
- ASYMMETRICAL PROCESSOR MEMORY ARCHITECTURE
Patent term adjustment
- A delay
- +751 daysthe office missed an examination deadline
- B delay
- +48 dayspendency past three years
- Applicant delay
- −11 days
- Net adjustment
- 788 days
Classification
- CPC, 5
- G06F15/8061
- G06F15/76
- G06F9/30196
- G06F9/30036
- G06F9/3004
- IPC, 2
- G06F15 76
- G06F9 30