`Art Unit: 2186
`
`Page 8
`
`and is optimized based on the memory needs of a specific program running on the reconfigurable
`
`processor}
`
`As per claims 3 and I4, Paulraj teaches in paragraph 23 that a Specific [cache] line size of
`
`contiguous data is not retrieved since the data line size is optimized-based on the memory needs
`
`of the program when executing on the reconfigurable processor. Refer also'to paragraph 29.
`
`Further, it is therefore inherent that the second memory have a charactersitic line size since
`
`Paulraj teaches in 11%22-23 that a best line size for the memory arrangement for a particular _
`
`program is determined and utilzied when that program is run. For example, a line-size
`
`characteristic would be ultized when transferring data from the L2 cache to the L1 cache.
`
`As per claim 4, Paulraj teaches that a loadfstore unit is used to access the caches (L1 -L3)
`in order to determine if cache data is present in the cache hierarchy (paragraph 6). Since the
`
`functional unit 102 (figure 6) is responsible for accessing the programmable memory unit 104,
`
`the Examiner-is therefore considering the loadfstore unit logic of the programmable memory unit
`
`that is reSponsible for for accessing the L1 and L2 caches (first and second memory types) to be
`
`a memory controller. It can be seen that the memory controller, as defined by the Examiner,
`
`controls the transfer of data between the memory (assuming second memory L2) and the data
`
`prefetch unit, since the memory controller (loadr’store unit logic) is responsible for retrieving the
`
`data from the cache if a hit occurs (paragraph 4).
`
`As per claim 5, as taught in paragraph 1, an external memory (element 18, figure 1) is
`
`general); coupled to a microprocessor and holds data to be used by the microcontroiler during
`
`program execution. The Examiner is considering the process'of writing data back to the external
`
`memory from the FPGA memory 104 containing the caches (on-board memory), such as during
`
`151
`
`151
`
`
`
`Applicatiom'COntrol Number: 101869200
`Art Unit: 2186
`
`Page 9
`
`a write—back scheme as known in the art, to be performed by the data prefetch unit portion of the
`
`functional logic as defined above by the Examiner. The data prefetch logic, as defined above, is
`
`responsible for all of the transfer of data into, out of, and between the FPGA memory 104. I
`
`As per claim 6, the Examiner is regarding a -—register-- in its broadest reasonable sense
`
`and it thus considering it be to be a unit of logic. Therefore, the portion of the function logic that
`
`is responsible for the movement of data (as defined above to be the data prefetch unit) is being
`
`considered by the Examiner as containing a --register-- portion of the reconfigurable processor
`
`since, for instance, the blocking factor and line size of the programmable memory I 12 can
`
`change, a --register-- or portion of the reconfigurable processor must be set in order to indicate
`
`the currnet line size and blocking factor when a given application is being run on the
`
`reconfigurable processor at a given point in time. Refer to paragraph 23. _
`
`As per claim 7, the Examiner is considering the process of "disassembling the data
`
`prefetch unit-- as modifying the data prefetch unit logic of the fucntion logic 102 every time the
`
`program being executed by the reconfigurable processor changes.
`
`It can be seen that the data
`
`prefetch unitchanges during these intervals since the cache line size, blocking factor, and
`
`associativity of the FPGA changes when optimal for the next program to be executed (refer-to-
`
`paragraph 23). Thus it can be seen that the data pre fetch unit logic is --disassembled-- when
`
`another program is executed by the reconfigurable processor of Paulraj.
`
`As per claim 8, as can be seen that the FPGa memory 112, that comprises the first and
`
`second memories (L1 and L2) and which is accessed by the data prefetch unit of the functional
`
`unit 102 as discussed above, is a «processor memory-- (part of Cpu 110). It can also be seen that '
`
`-
`
`the --second memory-- (L2) is also a -—processor memory-- since it is contained within
`
`152
`
`152
`
`
`
`' ApplicationIControl Number: 10r869,200
`Art Unit: 2186
`
`'
`
`'
`
`Page 10
`
`reconfigurable processor 1 10. Therefore, since the data pretech unit can access the L2 cache as.
`
`discussed above in the rejection of claim 1, the data prefetch unit can retrive data from the L2
`
`portion of -—processor memoryul 12.
`
`I
`
`As per claim 9, as shown in figure 1 and taught in paragraph 1 of Paulraj, the system 10
`
`is actually a microprocessor, which contains a memory controller 14. The main difference
`
`between the prior art of figure 1 and the invention of Paulraj in figure 6 is that the memroy
`
`hierarchy is configurable and accessed by a fucntional unit in lieu of a separate memory
`
`controller logic (paragraph 9). Therefore, since the memory controller logic for accessing the
`
`cache hierarchy is still contained within cpu I 10 of figure 6, it can be seen that the cpu 110 is
`
`actually a microprocessor. It follows that the --processor memory-- 1 12 is therefore a
`
`;-microprocessor memory-—.
`
`As per claim 10, since the cpu 1 10 of figure 6 is a reconfigurable processor (able to
`
`reconfigure its memory heirarchy to match the needs of the application it is currently running), it
`
`can be seen that the epu memory 1 I2 is a reconfigurable processor memory.
`As per claim 1 l, Paulraj depicts a reconfigurable hardware system in figure 6. Paulraj
`
`further teaches in paragraph 26 that when a particular application is to be run by the
`
`reconfigrable processor 1 l0, a configuration vector is retrieved to program the programmable
`
`memory 1 12 (figure 6). As shown in figure 6, the step of accesing the configuration vector is
`
`executed outside ofthe reconfigurable processor 110. Therefore, the Examiner is considering
`
`the memory that contains the configuration vectors to be a--common memory-- and a data
`
`prefetch unit (reconfiguration unit 106 executing on the reconfigurable processor I 10) accessing
`
`the common memory in order to determine how to program the memory 1 12 (paragraph 29).
`
`153
`
`153
`
`
`
`Application/Control Number: 10/869,200
`Art Unit: 2186
`
`_
`
`Page 11
`
`The data prefetch unit'106 is --configured~— by an application to be excuted on the sysem 110
`
`since when a new application is to be executed, the data prefctch unit is called upon (or
`
`configured) to access the configuration vector for the particular application.
`
`.
`
`The reconfigurable processor of Paulraj has the ability to collect memory usage statistics
`
`for a particular application and based on those statistics, create a configuration vector as taught in
`
`111123-24. This vector allows the programmable memory module 104 of Paulraj to be
`
`reconfigured to the most optimal memory configuration for that specific software program (flZ6).
`
`As defined by the Applicant in 1155 of the originally filed specification, a software program or
`
`application is a collection of “algorithms”; therefore, the configuration vector for a particular
`
`software program allows the system of Paulraj to instantiate a software program as hardware
`
`since the configuration vector represents optimal configuration of the hardware (programmable
`
`memory module 104 — element 112 of figure 6).
`
`As per claim 12, the Examiner is considering a «memory controller-- to be the system
`
`portion utilized when creating a new configuration vector for an application. Such a process
`
`occurs in figure 5 and taught in paragraghs 23—25 ofPaulraj. When a ncw configuration vector is
`
`created by analizing performance information that has been collected for the application. The
`
`Examiner is thereby considering the "memory controller«- to be the element of the
`
`reconfigurable hardware system that is associated with storing the new configuration vector into
`
`the common memory so that the vector can be accessed later when the same application is run
`
`again.
`
`As per claim 15, the Examiner is considering the reconfiguration module 106 of the -
`
`reconfigurable processsor 110, as comprising two distinct elements: a --computational unit» and
`
`154
`
`154
`
`
`
`ApplicationfCOntrol Number: 101869200
`
`Page 12
`
`Art Unit: 2186
`
`a —-data access unit-—. The data access unit is the element that is responsible for accessing the
`
`configuration vector as taught in paragraph 29 of Paulraj; or in other words, the Examiner is
`
`considering the --data access unit-- to be the same as the --memory conitrolern defined in the
`
`rejection of claim 12. The Examiner is further considering the --computational unit-- of the
`
`rconfiguration module 106 to be the element that sets up the programmable memory module 104
`
`using the configuration vector that was accessed by the --data access unit-- (paragraph 29).
`
`As per claim 16, as taught by Paulraj in paragraph 29, the --data access unit-- supplies the
`
`configuration vector to the «computational unit-- in order to set up the programmable memory
`104 as required by the application to be run on the reconfurable processor 110.
`
`As per claim 17, the Examiner is considering a --data prefetch unit-- to be the
`
`reconfiguration unit 106 of reconfigurable processor 1 10 (figure 6). As taught in paragraph 26
`
`and 29 of Paulraj, the --data prefetch unit—- accesses a memory in order to determine if a
`
`configuration vector is known for a given application, and if so, the vector is retrieved (from the
`
`memory). If this "data“ (configuration vector) is not known then a simulation is performed with
`
`the application in order to collect performance information. The Examiner is considering the
`
`element that executes and collects the performance data as being a --computational unit-- and the
`
`element of Paulraj that stores the configuration vector, once determined, to be a --data access
`
`unit—- since it stores the vector into the --memory-- from which it can be later retrieved (step 212
`
`of figure 5).
`
`All of the computational, data access, and data prefetch units are configured by a
`
`program, as immediately discussed. As defined by the Examiner, the “computational unit” of
`
`Paul raj is being considered to be the element of the system of Paulraj that executes and collects
`
`155
`
`155
`
`
`
`ApplicationIControl Number: 10(869300
`Art Unit: 2186
`
`-
`
`Page 13
`
`the performance data regarding how a specific application utilizes memory in order to determine
`
`an optimal memory configuration as discusses in 112?. Figure 5 of Paulraj shows a method for
`
`creating a configuration vector by using the --computational unit-- in steps 204-206. The
`
`Examiner is considering the inherent program that is being executed in order to perform the
`
`steps of figure 5 to be the program that configures the computational "unit. Therefore, it can be
`
`seen that Pauiraj suggests configuring the computational unit by a program. The program of
`
`figure 5 configures the computational unit to collect data for a specific application’s memory
`
`Iusage statistics in order to create a configuration vector that allows the system of Pauli-a] to
`
`optimally reconfigure the programmable memory module 104. Thus the computational unit can
`
`be configured to collect memory usage statistics for a plurality of applications that are to be
`
`executed by the recOnfigurable processor 100 of Paulraj (1123).
`
`The same reasoning applies to the data access and data prefetch units. The program that
`
`is'executing the steps of figure 5 (Le. running on the system of Paulraj that implements the
`
`method) configures the data access unit to retriever‘store a configuration vector (step 212) based
`
`on if a new configuration vector had to be created and further configures the data prefetch unit to
`
`search for a configuration vector and retrieve that vector if found (steps 200 and 212).
`
`As per claim 18, the --data-- (configuration vector) is transferred from the
`
`-«computational unit-- to the --data access unit-- when the configuration unit has created a
`
`_
`
`configuration vector (step 208 of figure 5). The --data-- is written to the memory --from-— the
`
`--data prefetch unit-- since the data prefetch unit (reconfiguration unit 106) is the element that
`
`executed the beginning of the configuration vector creation process (step 200 of figure 5). Refer
`
`156
`
`156
`
`
`
`ApplicationfControl Number: 101869300
`
`Art Unit: 2186
`
`Page 14
`
`'
`
`to paragraph 26. Thus the Examiner is considering the data as being written --from-- the data
`
`prefetch unit.
`
`As per claim 19, as taught in paragraph 26, if the configuration vector is known, the
`
`vector is retrieved from the memory to the data prefetch unit (reconfiguration unit 106). The
`
`data is read directly from the data prefetch unit when a request to create a configuration vector is
`
`made for a new application as shown in figure 6 since the data prefetch unit is reSponsible for
`
`being the vector creation process. The data is directed from the data prefetch unit (reconfigure
`
`logic) to be read from the memory by the data access unit to‘the computational unit where it is
`
`processed to produce a configuration vector.
`
`As per claim 20, as stated above, the configuration vector (--data~-) is created by the
`
`computational unit via acquired simulation data. The configuration vector is the resultant
`
`product that is transferred from the memory to the data prefect unit when it is determined that the
`
`configuration vector for the application is available (paragraph 26). Thus --all-- of the data that
`
`is transferred is processed by the computational unit (aibcit before the transfer occurs) since the
`
`data prefetch unit required the entire configuration vector in order to set up the programmable
`
`memory 112.
`
`As per claim 21, Paulraj shows in paragraph 26 that an explicit request for the
`
`configuration vector for the current application results in the data (if it exists) selected for the
`
`optimal configuration of the programmable memory 112 for that application.
`
`- As per claim 22, the Examiner is not considering the data (configuration vector) to be the
`
`size of a complete cache line since the data is used to create a cache hierarchy.
`
`In other words,
`
`the caches (Ll-L3) of the programmable memory I 12 are not programmed when the data is I
`
`157
`
`157
`
`
`
`ApplicationfControl Number: 10!869,200
`Art Unit: 2186
`
`_
`
`Page 15
`
`transferred from the memory to the data prefetch unit; therefore, the data cannot be a complete
`
`cache line.
`
`As per claim 23, since the Examiner defined the portion of the reconfiguration unit that
`
`accesses the configuration file (data) from the memory, the Examiner is defining the logic that
`
`controls the actual transfer of that data to the data prefetch unit (portion of the reconfiguration
`
`unit that executes the fetch of the configuration vector and then programs the programmable
`
`memory 112) to be a --memory controller--. Thus the data access unit determines whether a
`
`cOnfiguration vector exists for an application and if so, the memory controller sends that data to
`
`the data prefetch unit.
`
`As per claim 24, Paulraj shows a reconfigurable processor in figure 6 that comprises a
`
`computation unit 1 10 and a data access unit (elements 120 and l 14, which comprise the
`
`reconfiguratiOn unit 106 of figure 4 - 1128). In figure 6, the data access unit can be seen as being
`coupled to the computational unit. The data access unit retrieves data (configuration vector)
`
`from a memory internal to the data access unit (Le. reconfiguration unit) and supplies the data to
`
`the computation unit in the form of modifications to the cache FPGA module -1 12. Refer to 1123.
`i The Examiner is considering the inherent program that is being exeCuted in order to
`
`perform the Steps of figure 5 to be the program that configures the computational unit.
`
`Therefore, it can .be seen that Paulraj suggests configuring the computational unit by a program.
`
`The program of figure 5 configures the computational unit to collect data for a specific
`
`application’s memory usage statistics in order to create a configuration vector that allows the
`
`system of Paulraj to optimally reconfigure the programmable memory module 104. Thus the
`
`158
`
`158
`
`
`
`ApplicationfControl Number: 101369200
`Art Unit: 2186
`
`Page 16
`
`I
`
`computational unit can be configured to collect memory usage statistics for a plurality of
`
`applications that are to be executed by the reconfigurable processor 100 of Paulraj ($23).
`
`The data access unit (Specifically the memory portion used to store configuration profiles
`
`for the different application programs) is configured by the program that is responsible for
`
`running the method of figure 5 of Paulraj as discussed supra. When a new application is to be
`
`run, [as a result] the program performs the steps 204-206 to configure the reconfiguration unit to
`
`collect statistics regarding the memory usages (caches L1, L2, and 1.3) of the application and a
`configuration vector is associated with the respective application and'stored in the
`
`reconfiguration unit. Refer to “23—24. When an application is known, the program executing
`
`the method of figure 5 [as a result] configures the data access unit (reconfiguration unit) to
`
`retrieve the associated configuration vector-and apply it to the FPGA memory of the
`
`reconfi gurable processor (1R9).
`
`In other words, once the software program has been loaded into the computational unit, a
`
`variety of simulations are performed and memory usage statistics are gathered by the
`
`computational unit in order to create a configuration vector as taught in 1]1[23—24. This vector
`
`allows the programmable memory module 104 of Paulraj to be reconfigured to the most Optimal
`
`memory configuration for that specific software program (1&6). As discussed supra, a software
`
`program or application is a collection of “algorithms”; therefore, the configuration vector for a
`
`particular software program allows the system of Pauiraj to instantiate a sofiware program as
`
`hardware since the configuration vector represents optimal configuration of the hardware
`
`(programmable memory module 104 - element 1 12 of figure 6).
`
`159
`
`159
`
`
`
`Applicatiom‘Control Number: 10869200
`Art Unit: 2186
`
`Page 17
`
`Conclusion
`
`Any inquiry concerning this communication or earlier communications from the
`
`examiner should be directed to Shane M. Thomas whose telephcine number is (571) 272-4188.
`
`The examiner can normally be reached on M-F 8:30 - 5:30.
`
`If attempts to reach the examiner by telephone are unsuccessful, the examiner’s
`
`supervisor, Matt M. Kim can be reached on (571) 23'2-4182. The fax phone number for the
`
`organization where this application or proceeding is assigned is 571-273-8300
`
`Information regarding the status of an application may be obtained from the Patent
`
`Application Information Retrieval (PAIR) system. Status information for published applications
`may be obtained from either Private PAIR or Public PAIR. Status information for unpublished I
`
`applications is available through Private PAIR only. For more information about the PAIR
`
`system, see httpjr'pair-direct.uspto.gov. Should you have questions on access to the Private PAIR
`
`system, contact the Electronic Business Center (EBC) at 866-217-919? (toll-free).
`
`in“
`
`Shane M. Thomas
`
`'
`
`”a (”s—i
`
`HONGGI‘DNG KW _
`PRIMARY EXAMINER
`
`160
`
`160
`
`
`
`
`
`
`
`
`
`D.
`
`r
`
`
`
`9nsUae
`
`
`
`
`
`
`
`
`
`
`
`
`
`Smr
`9CamI
`
`
`
`
`
`
`
`
`
`
`
` L.mIII_II-II_null“E.IIImIIIIIII'IIIIIIIIIIIIIIIIIIIIIIIIIIII'IwwweIIIIII'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIImm.am.
`
`noTIImm,mM.IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIImwmm-IIIIIIIIIIIIIIIIIIImmmmIIIIIIIII'IIIIIIIIIA1eswIIIIIIII
`
`l|l|||mIIIIIIIIIl.m|_._.I—_u-—IIIIII
`f|||I|lwwI—==Illn==.._I5....mlaIIIII'IIIIIIIInfillIY---neeHiE«44¢¢«immmIEI-III!!!IMMIIIIIIIIIIIIIIIIIIIII
`IIIIIIIIII
`.memIIImmmm“nIIIIIII'IIIIIIII“flu“nflfllnnnflunuflflfln
`pooIIIIIIIIIIIAPIIIIII'IIIIIIIIIIIIIIIIIIIIIIIIIII
`IIIIIIIIIIII'IIIIIIIIIIIIIIIIIIII'I
`
`ImlI¢¢IIIIIIMMIMMMIIIIIIIIIIIIIIIIIIIIII
`.mm.IE-I-I-I-I-mmeIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
`
`
`
`adaIIIIIIIIIIIII“IIIIIIIIImmmIIIIIIIIIIIMwmnnmmmmmmmmmmflmflmmm-mmm
`
`
`a.R-I—---—-
`
`mdecEll-ill-
`
`
`:674.367890123455789mEgomwm1mmmmmmmmmmmummmm
`
`IIIIII.IIIII‘aIIIIIIIIIIIIIIII'IIIIII'I
`
`
`
`
`I-EBB-n:-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent and Trademark Office
`
`Part of Paper No. 10152005
`
`161
`
`161
`
`
`
`
`
`
`
`
`Search Notes
`
`ApplicationICIJntrol No.
`
`10369200
`Examiner
`
`Applicantisllpatent Iunder
`Reexamination
`
`POZNANOVIC ET AL.
`Art Unit
`
`Shane M. Thomas
`
`2186'
`
`'
`SEARCH NOTES
`(INCLUDING SEARCH STRATEGY}
`—-
`
`Updated East Search
`
`10:1 512005
`
`10’15'9005
`
`?1 11170-173 (te'xt search only - sea
`search printout)
`
`
`
`US. Patent and Trademark Office
`
`Part of Paper No. 10152005
`
`162
`
`162
`
`
`
`'
`
`'
`'
`Jan-054096
`
`14:57
`
`Frun~HGEAH & RARTSOH
`
`RECEIVED
`CENTRAL FAXCENTEI?!
`
`JAN 05 2055
`
`T-Blil Hal/HUB
`
`r—caz
`
`emanates}
`Appmul hr use mmanammona. 0MB M16031
`PmTMENT 0F COMMERCE
`Palam an: Tndcrrw
`monkeys.“
`was: I: die .
`
`- I wk. -
`2
`.1
`_
`
`
`ertificate of Transmission under 37 CFR 1.8
`
`Serial No. 10!869,200
`
`Application of: Daniei Poznancvic. David E. Caiiga. and Jeffrey Hammes
`
`Filed: June 16. 2004
`
`Art Unit: 2186
`
`Examiner. Thomas, Shane M.
`
`Attorney Docket No. SRCOZB
`
`- C
`
`SYSTEM AND METHOD OF ENHANCING EFFICIENCY AND UTILIZATION
`. For:
`OF MEMORY BANDWIDTH IN RECONFIGURABLE HARDWARE
`
`Confirmation No.: 5929
`
`Custorner No; 25235
`
`9225
`
`I hereby certify that this correspondence is being facsimile transmitted to the United
`States Patent and Trademark Office
`
`1. Amendment in response to the Office Action dated October 19, 2005.
`
`‘5
`
`mine
`
`Date
`
`9
`No. of Pages
`(incl. Govemhaei]
`
`to centralized fax number: 571-273-8300
`
`Julie Lgngg
`Typed or printed name of person signing Certificate
`
`Note: Each paper must have its own certificate of transmission, or its certificate must
`identify each submitted paper.
`
`Client Reference No. 804043031001
`
`Fax No. 719-448—5922
`
`“ICE . ”28? in
`
`PM 10’ RCVD AT 100605057114 PM |Eastern Standard Time]‘ WkUSPTO-EFIRf-fiififl ‘ DiiiS:2?383iJfl ' CSJDrt" BURhTIOH (IIIn-sslilii-ii
`
`163
`
`163
`
`
`
`-
`-
`Jan |]5 ZIJUE
`
`14:?
`5
`
`F
`
`run
`
`-HDEAIIIHART50II
`
`RECEIVED
`CENTRAL FAX CENTER
`
`+
`
`JAN 0 5 2005
`
`T-HIU
`
`P.0IJZIDIIB
`
`F-IIBZ
`
`Client Matter No. 30404.0033301
`Via Facsimile
`
`IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`
`Serial No. 10!869.200
`
`. Application of: Daniel Poznanovic. David E. caiiga,
`and Jeffrey Hammes
`Filed: June 16. 2004
`
`Art Unit: 2186
`
`Confirmation No.1 5929
`
`_
`Customer No.. 25235
`
`BANDWIDTH IN RECONFIGURABLE HARDWARE
`
`Examiner: Thomas. Shane M.
`
`Attorney Docket No. SRO-028
`
`SYSTEM AND METHOD OF ENHANCING
`For:
`EFFICIENCY AND UTILIZATION OF MEMORY
`
`AMENDME
`
`MAIL STOP AMENDMENT
`Commissioner for Patents
`PO. Box 1450
`Alexandria, VA 22313-1450
`
`Sir:
`
`In response to the office Communication maiied October 19, 2005. please
`
`amend the above-identified application as follows:
`
`Amendments to the Claims are reflected in the listing of claims which
`
`begins on page 2 of this paper.
`
`RemarkeIArguments begin on page 6 of this paper.
`
`“165- "283' u
`
`PAGE 2ii' RCIID fiT Iiiilflfifi Iiiiiii PM [Eastern StandaId Timel‘ SVR:USPTO£FXRF-GI39‘ DIII‘SIZTSIMB ‘ CSIDH‘ DURATION (mm-ss):02-12
`
`164
`
`164
`
`
`
`Jan-05-2G0614:ET
`
`From-HBEAHIHKRTSDH
`
`It
`
`T-EIU
`
`9003/00!
`
`F-DIZ
`
`Serial No. 10(369200
`Reply to Office Action of October 19, 2005
`
`Amendments to the Claims:
`
`This listing of claims witi replace all prior versions and listings of claims in the
`
`application:
`
`Ligfing of Claims:
`
`1.
`
`(Previously Presented) A reconfigurable processor that instantiates
`
`an algorithm as hardware comprising:
`
`a first memory having a first characteristic memory bandwidth andlor
`
`memory utilization; and
`
`a data prefetch unit coupled to the first memory, wherein the data prefetch
`
`unit retrieves data from a second memory of second characteristic memory
`
`bandwidth andror memory utilization and place the retrieved data in the first
`
`memory and wherein at
`
`least
`
`the first memory and data prefetch unit are
`
`configured by a program.
`
`2.
`
`3.
`
`4,
`
`(Cancelled)
`
`(Cancelled)
`
`(Previously Presented) The reconfigurable processor of claim 1.
`
`wherein the data prefetch unit is coupled to a memory controller that controls the
`
`transfer of the data between the second memory and the data prefetch unit.
`
`5.
`
`(Previously Presented) The reconfigurable processor of claim 1,
`
`wherein the data prefetch unit receives processed data from on-processor
`
`memory and writes the processed data to an external ofisproceSsor memory.
`
`“113: - 77287 I1
`
`2
`
`PAGE 33‘ RCVD AT 1i5120054:§?:!4 PM [Eastern Standard Time] * MUSHD-EFXRF-iflifl ‘ DMS:2738300 ' CSIDH ' DURATION (lllill-ss]:D2-12
`
`165
`
`165
`
`
`
`Jail-'US-Ziiflli
`
`14:57
`
`Frm-HDEAN§HARTSDN
`
`+
`
`T-Slfl
`
`ROM/009
`
`F-DEZ
`
`Serial No. 10l669.200
`Reply to Office Action of October 19. 2005
`
`6.
`
`(Original) The reconfigurable processor of claim 1. wherein the
`
`data prefetch unit comprises at
`
`ieast one register from the reconfigurable
`
`processor.
`
`7.
`
`(Original) The reconfigurable processor of claim 1. wherein the
`
`data prefetch unit is disassembled when another program is executed on the
`
`reconfigurable processor.
`
`8.
`
`(Previously Precented) The reconfigurable processor of claim 1
`
`wherein said second memory comprises a processor memory and said data
`
`prefetch unit is operative to retrieve data from the processor memory.
`
`9.
`
`(Original) The reconfigurable processor of claim 8 wherein said
`
`processor memory is a microprocessor memory.
`
`10.
`
`(Original) The reconfigurable processor of claim 8 wherein said
`
`processor memory is a reconfigurable processor memory.
`
`11.
`
`(Previously Presented)
`
`A reconfigurable hardware system.
`
`comprising:
`
`a common memory; and
`
`one or more reconfigurable processors that can instantiate an algorithm
`
`as hardware coupled to the common memory. wherein at least one of the
`
`reconfigurabte processors includes a data prefetch unit to read and write data
`
`between the data prefetch unit and the common memory. and wherein the data
`
`prefetch unit is configured by a program executed on the system.
`
`12.
`
`(Original)
`
`The reconfigurable hardware system of claim 11,
`
`comprising a memory controller coupled to the common memory and the data
`
`prefetch unit.
`
`mos-morn
`
`3
`
`PAGE iiQ‘ RC'JDAT IlSRflDEiifiifli PM [Eastern Standard Tlllltl' MUSPTO'EFXRf-Em ' DiilSfliSBIlflfl ' CSiD:+ ‘ DURATliiil (mm-ss):flt-tt
`
`166
`
`166
`
`
`
`Jan-fiE-leflli
`
`14:53
`
`Frail-HOGAN 5 HANSON
`
`+
`
`T~Blfl
`
`PIES/DDS
`
`#082
`
`Serial No. 1013692le
`Reply to Office Action of October 19. 2005
`
`13.
`
`(Cancelled)
`
`14.
`
`(Cancelled)
`
`15.
`
`(Previously Presented) The reconfigurable hardware system of
`
`claim 11. wherein the at least one of the reconfigurable processors also includes
`
`a computational unit coupled to a data access unit.
`
`16.
`
`(Original)
`
`The reconfigurable hardware system of claim 15,
`
`wherein the computational unit is supplied the data by the data access unit.
`
`17.
`
`(Prevlously Presented) A method of transferring data comprising:
`
`transferring data between a memory and a data- prefetcn unit
`
`in a
`
`reconfigurable processor; and
`
`transferring the data between a computational unit and a data access unit.
`
`wherein the computational unit and the data access unit. and the data prefetch
`
`unit are configured by a program.
`
`13.
`
`(Original) The method of claim 17. wherein the data is written to
`
`the memory, said method comprising:
`
`transferring the data from the computational unit to the data access unit;
`
`and
`
`writing the data to the memory from the data prefetoh unit.
`
`19.
`
`(Previously Presented) The method of claim 17, wherein the data
`
`is read from the memory. said method comprising:
`
`transferring the data from the memory to the data prefetch unit; and
`
`reading the data directly from the data prefetch unit to the computational
`
`unit through the data access unit.
`
`mes-ma: n
`
`4
`
`PllGE 5l9" RCVD AT lliflllllfi 4:57:14 PM [Eastem Standard Tlmtl' WUSPTO‘EFXRHM' DHSRHBMD ‘ CSlD:+‘ DURATION (ms):lll-12
`
`167
`
`167
`
`
`
`Jan-DE-Zotlfi
`
`14:58
`
`From-HUGAHIHARTSDN
`
`+
`
`1.310
`
`pugs/nag
`
`p-332
`
`Serial NO. 108139.200
`Reply to Office Action of October 19, 2005
`
`20.
`
`(Original) The method of claim 19, wherein all the data transferred
`
`from the memory to the data prefelch unit is processed by the computational
`unit.
`
`21-
`
`(Original) The method of claim 19. wherein the data is selected by
`
`the data prefetch unit based en an explicit request from the computational unit.
`
`22.
`
`(Original) The method of claim 17, wherein the data transferred
`
`between the memory and the data prefetch unit is not a complete cache line.
`
`23.
`
`(Original) The method of claim 17, wherein a memory controller
`
`coupled to the memoryr and the data prefetch unit, controls the transfer of the
`
`data between the memory and the data prefetch unit.
`
`24.
`
`(Cancelled)
`
`IT‘S - "m in
`
`5
`
`PAGE fii9“ RCVD AT llfiltflflfilfilill PM [Eastern Standard liner SVEUSPTD-EFXRF-fim‘ DMS:2?383M' CSIDtt' DURATION (lllli-sslifl-fl
`
`168
`
`168
`
`
`
`Jan-Ili-ZDIIE 14:58
`
`Frum-HDEAHSHARTSOH
`
`+
`
`T410
`
`RWY/089
`
`F-UBZ
`
`Serial No. 101869.200
`Reply to Office Action of October 19. 2005
`
`REMARKSIARGUMENTS
`
`Claims 1. 4—12. and 15-24 were presented for examination and are pending
`
`in this application.
`
`In an Official Office Action dated October 19, 2005. claims 1, 4-
`
`12. and 15-24 were rejected. Claim 24 is canceled without prejudice and no new
`
`claims are presently added. Claims 1. 4-12. and 15-23 remain pending. The
`
`Applicants thank the Examiner for his consideration and address the Examiner's
`
`comments concerning the claims pending in this application below.
`
`Rejection of the Claims under 35 U.S.C. §102(e)
`
`Claims 1. 3. 4. 7-10. and 12-18 were rejected under 35 U.S.C. §102(e) as
`
`being anticipated by U.S. Patent Application Publication No. 2003!0084244
`
`(“Paulraj”). Applicants respectfully traverse these rejections in light of the following
`
`remarks.
`
`MPEP §2131 provides:
`
`“A claim is anticipated only if each and every element as set forth in
`
`the claim is found. either expresslyr or inherently described. in a
`
`single prior art reference.” Verdegall Bros. v. Union Oil Co. of
`
`Califomie. 8'14 F26 6328. 631. 2 U.S.P.Q.2d 1051, 1053 (Fed.
`
`Cir.198?). “The identical invention must be shown in as complete
`
`detail as contained in the ctaim." Richardson v. Suzuki Motor Co..
`
`863 F.2d 1226. 1236. 9 U.S-P.Q.2d 1913. 1920 (Fed. Cir. 1989).
`
`Peuiraj fails to disclose each and every limitation recited in the claims. The
`
`Examiner reasons that Paulraj discloses a system having a program that
`
`reconfigures computational units. data access units. and pre-fetch units. The
`
`Applicants disagree.
`
`The Examiner's logic in making the above assertion ls faulty. Assume for
`
`argument sake (as does the Examiner) that the computational unit Is the element of
`
`the Paulrai system that executes and collects performance data regarding an
`
`WEE - F7287 fl
`
`6
`
`PAGE ll! ‘ RBVD RT 1l5l2l|flfi 4:5iil4 PM [Eastern Standard Time]* SRUSPTOrEFXRF-fli! ‘ DlllSIZHEMfl‘ CSIDrl ' DURATION (null-sslfllZ-l?
`
`169
`
`169
`
`
`
`‘
`
`Jan-us-znis was
`
`Frun-HOGANIRARTSOH
`
`+
`
`T-gm mus/ans
`
`F-naz
`
`Serial No. 101369300
`Reply to Office Action of October 19, 2005
`
`application to determine an optimal memory configuration. The program operating
`
`on the Paulra} system depicted In Figure 5 of Paulraj "configures” the collection
`
`process so as to ascertain information about a specific application.
`
`In this sense
`
`the Examiner uses the term configure to state that the program executed by the
`
`Pauiraj system modifies, directs. andior controls the collection means (the
`
`computational unit) to properly assess the target application so that the memory
`
`can be optimally configured.
`
`The Examiner man extends this argument to the data access units and pre-
`
`fetch units. While such an extension is perhaps conceivable today given the
`
`present invention, it is not, nonetheless, disclosed by Paulra]. Nor Is it reasonable
`
`to conclude that such an extension would be apparent to one skilled in the art at the
`
`time of the Applicants‘ invention.
`
`As the Examiner points out. Paulral disctoses creating a “configuration vector
`
`containing data relating to the optimal configuration to the necessary instruction for
`
`programming the programmable memory module-" Pauirat [0024]. Paulraj also
`
`discloses a reconfiguration module that uses the vector to configure the
`
`programmable memory module. Once the Paulraj system collects information
`
`about the target application and creates the configuration vector for optimal
`
`memory module configuration, "the configuration vector is then retrieved (step 212),
`
`used to program the FPGA module (step 214), and the application is executed with
`
`the optimal memory configuration for that application (step 216).” Pautra] [0026].
`
`The “program” that the Examiner considers to configure the computational
`
`unit does not, according to Paulraj. ”configure” the data acce