DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Status
Claim 1 has been amended. No new claims have been cancelled or added. Claims 1-10 remain pending and are ready for examination.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1 and 9-10 is/are rejected under 35 U.S.C. 103 as being unpatentable over Yu et al. (US Publication No. 2022/0036929 -- "Yu") in view of Madan et al. (US Publication No. 2023/0205706 -- "Madan") in further view of Kim et al. (US Publication No. 2020/0356305 – “Kim”).
Regarding claim 1, Yu teaches A memory controller controlling modes for processing requests for a memory device, the memory controller comprising: a bank group scheduler configured to generate a memory command corresponding to a memory request; (Yu paragraph [0006], According to an exemplary embodiment of the inventive concept, there is provided a memory device including a memory cell array including a first memory region and a second memory region; signal lines (e.g., command/address signal lines) configured to receive a command and an address from a source located outside the memory device; mode selector circuit configured to generate a processing mode selection signal for controlling the memory device to enter an internal processing mode based on the address received together with the command; a command converter circuit configured to convert the received command into an internal processing operation command in response to activation of the internal processing mode selection signal; and an internal processor configured to perform an internal processing operation on the first memory region in response to the internal processing operation command, in the internal processing mode. A memory command can be generated in response to a memory request, via a scheduler component) an arbiter configured to select and output the memory command; and a PIM management circuit configured to generate a PIM command corresponding to a PIM request, (Yu paragraphs [0007-0008], According to an exemplary embodiment of the inventive concept, there is provided a method of operating a memory device including a memory cell array including a first memory region and a second memory region, and an internal processor configured to perform an internal processing operation, the method including receiving a command and an address from a source located outside the memory device through a pre-defined protocol interface; generating a processing mode selection signal for controlling the memory device to enter an internal processing mode based on the address received together with the command; converting the received command into an internal processing operation command in response to activation of the internal processing mode selection signal; and the internal processor performing an internal processing operation on the first memory region in response to the internal processing operation command, in the internal processing mode. According to exemplary embodiment of the inventive concept, there is provided a memory system including a memory device; and a memory controller configured to control the memory device by using a pre-defined protocol interface connected to the memory device. The memory device includes a memory cell array including a first memory region and a second memory region; an mode selector circuit configured to receive a command and an address from the memory controller through the pre-defined protocol interface and, based on the address received together with the command, generate a processing mode selection signal for controlling the memory device to enter an internal processing mode; a command converter circuit configured to convert the received command into an internal processing operation command in response to activation of the internal processing mode selection signal; and an internal processor configured to perform an internal processing operation on the first memory region in response to the internal processing operation command, in the internal processing mode. An internal memory processing circuit may generate and transmit the command corresponding to said memory request) wherein the modes include a normal mode for processing the memory request and a PIM mode for processing the PIM request, and wherein the PIM management circuit includes a scheduler configured to control, according to a number of PIM commands, switching between the normal mode and the PIM mode (Yu paragraphs [0024-0025], The memory controller 112 includes a control register 116. The control register 116 may be used for initializing the memory device 120 and/or controlling the memory device 120 according to operating characteristics of the memory device 120. After the system 100 is powered up, the memory controller 112 may set the control register 116. The control register 116 may store various codes configured to allow the memory controller 112 to normally interoperate with the memory device 120. For example, codes indicating a frequency, a timing, and detailed operation parameters of the memory device 120 may be stored in the control register 116. Also, the control register 116 may store specific address information used by the controller 112 to physically or logically divide a memory cell array 121 of the memory device 120 according to an operation mode. For example, the specific address information may indicate specific addresses used to divide the memory cell array 121 into a PIM region 122 and a normal memory region 124. The PIM region 122 may be a memory cell region accessed when the memory device 120 operates in an internal processing mode, and the normal memory region may be a memory cell region accessed when the memory device 120 operates in a normal mode. For example, a specific address may indicate an address used to access the PIM region 122 and may serve as a basic signal for allowing the memory device 120 to enter the internal processing mode. A specific address may include, for example, a stack identification signal, a channel address, or a bank address. According to embodiments, the specific address may include a combination of a stack identification signal, a channel address, and/or a bank address. The two modes (normal and in-memory processing) may be used depending upon various factors such as command frequency, timing, and other parameters).
Yu does not teach the PIM management circuit includes a scheduler configured to control, according to a number of PIM commands, switching between the normal mode and the PIM mode, and wherein the scheduler performs, by outputting a mode switching signal, a first switching corresponding to a switching from the PIM mode to the normal mode in response to the activation of a refresh signal.
However, Madan teaches the PIM management circuit includes a scheduler configured to control, (A command queue and scheduler can be used to switch between normal and PIM mode operations, also see Madan paragraph [0043], Although implementations are depicted in the figures and described herein in the context of the command queue 170 being implemented as a single element, implementations are not limited to this example and according to an implementation, the command queue 170 is implemented by multiple elements, for example, a separate command queue for each of the banks in the memory module 140. The scheduler 172 schedules memory commands for processing. According to an implementation, the scheduler 172 selects commands for processing based upon various selection criteria, as described in more detail hereinafter) according to a number of PIM commands, switching between the normal mode and the PIM mode (Madan paragraph [0030], An approach is provided for managing PIM commands and non-PIM commands at a memory controller. A memory controller enqueues PIM commands and non-PIM commands and selects the next command to process based upon various selection criteria. Examples of selection criteria include, without limitation, command allocation bandwidth, a number of pending commands, an amount of time or number of cycles since a most recent command was issued, a presence of a marker, or global age, etc. The execution of a given command, requiring the switching of a PIM or normal command mode, can be issued based on the number of pending commands).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu with those of Madan. Madan teaches switching between a normal command operation and a PIM command operation based on a variety of factors, including the number of pending commands. As switching between PIM mode and normal mode is a demanding process, optimizing the switching based on the number of commands can improve the functioning of the system by requiring less overall switching (Madan paragraph [0032], The approach of using a single All Banks entry in the page table to track the status of memory elements after processing the most recent PIM command allows the memory controller to efficiently manage, both from a computational cost and power consumption perspective, PIM commands and non-PIM commands without having to isolate PIM commands and non-PIM commands, which can cause a large performance penalty).
Yu in view of Madan does not teach outputting a mode switching signal, a first switching corresponding to a switching from the PIM mode to the normal mode in response to the activation of a refresh signal.
However, Kim teaches outputting a mode switching signal, a first switching corresponding to a switching from the PIM mode to the normal mode in response to the activation of a refresh signal (Kim paragraph [0105-0106], The state diagram 600 of FIG. 6 is in many respects the same as a corresponding state diagram for a conventional Dynamic Random Access Memory (DRAM). In an embodiment, the state machine corresponding to the state machine 600 changes states in response to a PIM read command (PIM RD) and a PIM write command (PIM WR), which are PIM commands, as well as changing states in response to a read command (RD), a write command (RD), an Activate command (AC), a Precharge command (PRE), and a Refresh command (REF) which are conventional DRAM commands. Kim teaches utilizing normal command states and PIM states, and can switch from PIM commands to normal command state in response to conventional commands, such as a refresh command. The switching may be performed via signals, such as in Kim paragraph [0064], FIG. 4A shows data structure of a memory command according to an embodiment, and FIG. 4B shows data structure of a PIM command according to an embodiment. The memory command and PIM command may be communicated from a memory controller to a memory device via a common interface. In an embodiment, the interface may be signals according to a memory standard).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu and Madan with those of Kim. Kim teaches switching between PIM and normal command operation in various scenarios, including activation of a refresh signal, which can allow the memory device to perform the command (i.e., refresh) without interruption/delay (i.e., see Kim paragraph [0114], First, it is possible to prevent the processing of a memory command from being unconditionally interrupted by the processing of a PIM command. Accordingly, since a memory command can be scheduled and processed while a collision does not occur during processing of a PIM command, performance degradation of a memory system can be prevented).
Regarding claim 9, Yu in view of Madan in further view of Kim teaches The memory controller of claim 1, wherein when the refresh signal is activated, the scheduler determines to perform the first switching after delaying a predetermined time (Kim paragraphs [0046-0048], The command scheduler 150 selects and outputs memory commands and PIM commands stored in the command queue 140 to the memory device 200 in consideration of timing constraints necessary for operation of the memory device 200. The timing constraint is predefined through standards or the like, and a detailed description thereof will be omitted. In an embodiment, the command scheduler 150 may consider additional constraints in addition to the timing constraints. The timing for the switching between operation states (PIM and normal) can be delayed based on given timing constraints and factors considered by the scheduler component, also see Kim paragraph [0074], The memory device 200 may further refer to an address provided to the memory device 200 in association with a PIM command in the same manner as the memory device 200 refers to an address provided to the memory device 200 in association with a memory command. The address may be provided to the memory device over different signals than those used to communicate the memory or PIM command, over the same signals as those used to communicate the memory or PIM command by using time multiplexing, or a combination thereof) after the refresh signal is activated (Kim paragraph [0108], When the Activate command ACT is input in the idle state S10, the state transitions to the bank active state S20, and in an embodiment a row of a bank determined according to an address associated with the Activate command is placed in the activated state, so that data can be read from and written to that row. When the refresh command REF is input in the idle state S10, the state transitions to the refresh state S60. The state may be changed after activation of a REF signal).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu, Madan and those of Kim. Kim teaches using a refresh command to change the PIM commands from an active state to an idle state, resulting in normal command operation. This allows the system to transition from the PIM command operation to normal command operation easily and efficiently (Kim paragraphs [0112-0114], When the precharge operation terminates in the precharge state S50, the state transitions to the idle state S10. When the refresh operation terminates in the refresh state S60, the state transitions to the idle state S10. Whenever the state machine transitions to the precharge state S50, the active row in the bank is deactivated. As shown in FIG. 6, memory commands and PIM commands are processed by the state machine corresponding to the state diagram 600 in the same way, which has the following advantages. First, it is possible to prevent the processing of a memory command from being unconditionally interrupted by the processing of a PIM command. Accordingly, since a memory command can be scheduled and processed while a collision does not occur during processing of a PIM command, performance degradation of a memory system can be prevented).
Regarding claim 10, Yu in view of Madan in further view of Kim teaches The memory controller of claim 1, further comprising a host interface circuit configured to receive the memory request and the PIM request from a host and a memory interface circuit configured to provide the memory command and the PIM command to the memory device (Yu paragraphs [0024-0025], The memory controller 112 includes a control register 116. The control register 116 may be used for initializing the memory device 120 and/or controlling the memory device 120 according to operating characteristics of the memory device 120. After the system 100 is powered up, the memory controller 112 may set the control register 116. The control register 116 may store various codes configured to allow the memory controller 112 to normally interoperate with the memory device 120. For example, codes indicating a frequency, a timing, and detailed operation parameters of the memory device 120 may be stored in the control register 116. Also, the control register 116 may store specific address information used by the controller 112 to physically or logically divide a memory cell array 121 of the memory device 120 according to an operation mode. For example, the specific address information may indicate specific addresses used to divide the memory cell array 121 into a PIM region 122 and a normal memory region 124. The PIM region 122 may be a memory cell region accessed when the memory device 120 operates in an internal processing mode, and the normal memory region may be a memory cell region accessed when the memory device 120 operates in a normal mode. For example, a specific address may indicate an address used to access the PIM region 122 and may serve as a basic signal for allowing the memory device 120 to enter the internal processing mode. A specific address may include, for example, a stack identification signal, a channel address, or a bank address. According to embodiments, the specific address may include a combination of a stack identification signal, a channel address, and/or a bank address. The two modes (normal and in-memory processing) may be used depending upon various factors such as command frequency, timing, and other parameters. These commands may be transmitted from a host and controller, see Yu paragraphs [0022-0023], The host device 110 is a functional block for performing general computer operations in the system 100 and may correspond to a central processing unit (CPU), a digital signal processor (DSP), a graphics processing unit (GPU), or an application processor (AP). The host device 110 may include a memory controller 112 (e.g., a control circuit) that manages data transmission and reception to and from the memory device 120. The memory controller 112 may access the memory device 120 according to a memory request of the host device 110. The memory controller 112 includes a memory physical layer interface 114 for interfacing with the memory device 120. For example, the memory controller 112 may be used for selecting rows and columns corresponding to memory locations, writing data to memory locations, or reading written data. The memory physical layer interface 114 may be referred to as a memory PHY 114).
Claim(s) 2 and 7-8 is/are rejected under 35 U.S.C. 103 as being unpatentable over Yu in view of Madan in further view of Kim as applied to claim 1 above, and further in view of Kasibhatla et al. (US Patent No. 11,074,961 -- "Kasibhatla").
Regarding claim 2, Yu in view of Madan in further view of Kim and further in view of Kasibhatla teaches The memory controller of claim 1, wherein the PIM management circuit further includes: a command queue configured to store the PIM command; (Madan paragraph [0041], FIG. 1C depicts an example implementation of the memory controller 130 and includes a command queue 170, a scheduler 172, processing logic 174, command metadata 176 and a page table 178. The memory controller 130 includes fewer or additional elements that vary depending upon a particular implementation and that are not depicted in the figures and described herein for purposes of explanation. In addition, the functionality provided by the various elements of the memory controller 130 are combined in any manner, depending upon a particular implementation. A command queue and scheduler can be used to switch between normal and PIM mode operations, also see Madan paragraph [0043], Although implementations are depicted in the figures and described herein in the context of the command queue 170 being implemented as a single element, implementations are not limited to this example and according to an implementation, the command queue 170 is implemented by multiple elements, for example, a separate command queue for each of the banks in the memory module 140. The scheduler 172 schedules memory commands for processing. According to an implementation, the scheduler 172 selects commands for processing based upon various selection criteria, as described in more detail hereinafter) a command generator configured to generate a preparation command during a switching step to the normal mode or to the PIM mode; a command selection circuit configured to select an output of the command queue or an output of the command generator; (Yu paragraphs [0047-0048], The PIM mode selector 210 may activate the PIM mode selection signal PIM_SEL when a specific address is included in the address ADDR received through the command/address signal lines 132. By activating the PIM mode selection signal PIM_SEL, the memory device 120 may operate in the internal processing mode. The PIM mode selector 210 may deactivate the PIM mode selection signal PIM_SEL when no specific address is included in the address ADDR received through the command/address signal lines 132. For example, the PIM mode selection signal PIM_SEL may be activated by setting it the first logic level and deactivated by setting it to the second logic level. By deactivating the PIM mode selection signal PIM_SEL, the memory device 120 may operate in the normal mode. The PIM mode selection signal PIM_SEL may be provided to the first switch 231 and the second switch 232. The first switch 231 may selectively connect the command/address signal lines 132 to input signal lines 221 or internal command signal lines 240 of the PIM command converter 126 in response to the PIM mode selection signal PIM_SEL. The second switch 232 may selectively connect output signal lines 222 or the internal command signal lines 240 of the PIM command converter 126 to the memory cell array 121 and the PIM engine 250 in response to the PIM mode selection signal PIM_SEL. A normal command can be generated during the determination of the command operation mode. This can then be output as a normal command instead of the PIM command queue operation) and a control circuit configured to control the command generator and the command selection circuit according to control of the scheduler (Kasibhatla column 15; lines 17-34, In operation S516, the memory controller 114 may perform an arbiter function between the data transaction command and the internal processing operation command IPCMD to determine a priority thereof. As a result of the determination, when the priority command is the internal processing operation command IPCMD, the method may proceed to operation S520, and when the priority command is the data transaction command for the computational operation, the method may proceed to operation S530. In operation S520, the memory controller 114 may issue the internal processing operation command IPCMD to the memory device 120 through the CMD buses and/or the CMD signal lines of the first channel CH1. In this case, the memory controller 114 may perform a virtual memory management function such as a virtual memory address translation associated with the internal processing operation command IPCMD, and issue the internal processing operation command IPCMD to the memory device 120.The controller/control circuit may determine a priority between the normal generated command and the PIM command selection of the queue).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu, Madan and Kim with those of Kasibhatla. Kasibhatla teaches using a PIM command queue as well as a scheduler which can implement a precharge command as well as switch between normal and PIM mode commands via a controller component. This can provide additional flexibility for the memory system allowing for faster operation mode switching improving performance (Kasibhatla column 1; lines 45-62, In order to improve the system performance, a memory device including an internal processor is developed to perform some of the computation operations of the host by internal processing. The computational workload of the host may be reduced due to the internal processing of the memory device. However, in order to prevent a collision between the internal processing and the processing by the host, the memory device may need to perform an arbiter function to determine a priority thereof. Also, the memory device may perform an operation of reading and writing in the memory device by internal processing. In this case, when data stored in a cache of the host is changed in the memory device, the data in the cache is not the latest data, whereby there may be a limitation in the coherence of cache data. Accordingly, the memory device may need to perform a virtual memory management function such as a virtual memory address translation across the host and the memory device).
Regarding claim 7, Yu in view of Madan in further view of Kim in further view of Kasibhatla teaches The memory controller of claim 2, wherein the scheduler further determines to perform the first switching when all PIM commands stored in the command queue are processed or a calibration signal is activated (Kim paragraphs [0107-0109], States of the state diagram 600 include an idle state S10, a bank active state S20, a write state S30, a read state S40, a precharge state S50, and a refresh state S60. When the Activate command ACT is input in the idle state S10, the state transitions to the bank active state S20, and in an embodiment a row of a bank determined according to an address associated with the Activate command is placed in the activated state, so that data can be read from and written to that row. When the refresh command REF is input in the idle state S10, the state transitions to the refresh state S60. When the write command WR or PIM write command PIM WR is input in the bank active state S20, the state transitions to the write state S30. When the read command RD or the PIM read command PIM RD is input in the bank active state S20, the state transitions to the read state S40. When the precharge command PRE is input in the bank active state S20, the state transitions to the precharge state S50. A refresh command can be implemented to switch from the PIM command state to a normal state (i.e., mode) of operation).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu, Madan, Kim and Kasibhatla. Kim teaches using a refresh command to change the PIM commands from an active state to an idle state, resulting in normal command operation. This allows the system to transition from the PIM command operation to normal command operation easily and efficiently (Kim paragraphs [0112-0114], When the precharge operation terminates in the precharge state S50, the state transitions to the idle state S10. When the refresh operation terminates in the refresh state S60, the state transitions to the idle state S10. Whenever the state machine transitions to the precharge state S50, the active row in the bank is deactivated. As shown in FIG. 6, memory commands and PIM commands are processed by the state machine corresponding to the state diagram 600 in the same way, which has the following advantages. First, it is possible to prevent the processing of a memory command from being unconditionally interrupted by the processing of a PIM command. Accordingly, since a memory command can be scheduled and processed while a collision does not occur during processing of a PIM command, performance degradation of a memory system can be prevented).
Regarding claim 8, Yu in view of Madan in further view of Kim and further in view of Kasibhatla teaches The memory controller of claim 7, wherein when the scheduler determines to perform the first switching, the control circuit controls the command generator and the command selection circuit so that an all-bank precharge command and a Mode Register Set (MRS) command for a mode switching are provided to the memory device (Kasibhatla column 5; lines 3-19, According to an embodiment, the PIM agent 116 may activate and transmit the internal processing mode signal IPM to the memory device 120. The internal processing mode signal IPM may be transmitted to the memory device 120 as a combination of several signals, such as a command combination, a mode register set (MRS), or an address combination. In this case, the internal processing mode signal IPM may be transmitted to the memory device 120 through the buses and/or signal lines of the first channel CH1 between the host device 110 and the memory device 120. The internal processing mode signal IPM may allow the memory device 120 to operate in the internal processing mode. In the internal processing mode, an internal processing operation may include accessing the memory cell array 122 to perform a processing operation on the data stored in the memory cell array 122. The command may be selected from the command queue, such as in Kasibhatla column 13; lines 23-36, When the internal processing information IPI read from the memory cell array 122 includes or is an internal processing operation command IPCMD indicating a type of the internal processing operation, the internal processor 320 may store an internal processing read command PIM_READ and/or an internal processing write command PIM_WRITE constituting the internal processing operation command IPCMD in the command queue 324. The command queue 324 may store the internal processing operation command IPCMD including at least one of the internal processing read command PIM_READ and the internal processing write command PIM_WRITE. The signal can also include a precharge command, see Kasibhatla column 11; lines 25-44, The command/address buffer 310 may receive control signals corresponding to the command CMD from the memory controller 114 through the first channel CH1. The control signals may include, for example, a write enable signal /WE, a row address strobe signal /RAS, a column address strobe signal /CAS, and/or a chip selection signal /CS, and the command CMD may include, for example, an active command, a read command, a write command, and/or a precharge command. The command/address buffer 310 may receive an address ADDR from the memory controller 114 through the first channel CH1. The address ADDR may include a row address for addressing a row of the memory cell array 122 and a column address for addressing a column of the memory cell array 122. The command/address buffer 310 may transmit the row address and the column address to the row/column decoder 312).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu, Madan and Kim with those of Kasibhatla. Kasibhatla teaches using a PIM command queue as well as a scheduler which can implement a precharge command as well as switch between normal and PIM mode commands via a controller component. This can provide additional flexibility for the memory system allowing for faster operation mode switching improving performance (Kasibhatla column 1; lines 45-62, In order to improve the system performance, a memory device including an internal processor is developed to perform some of the computation operations of the host by internal processing. The computational workload of the host may be reduced due to the internal processing of the memory device. However, in order to prevent a collision between the internal processing and the processing by the host, the memory device may need to perform an arbiter function to determine a priority thereof. Also, the memory device may perform an operation of reading and writing in the memory device by internal processing. In this case, when data stored in a cache of the host is changed in the memory device, the data in the cache is not the latest data, whereby there may be a limitation in the coherence of cache data. Accordingly, the memory device may need to perform a virtual memory management function such as a virtual memory address translation across the host and the memory device).
Claim(s) 3-6 is/are rejected under 35 U.S.C. 103 as being unpatentable over Yu in view of Madan in further view of Kim and Kasibhatla as applied to claim 2 above, and further in view of Alsop et al. (US Publication No. 2024/0004653 -- "Alsop").
Regarding claim 3, Yu in view of Madan in further view of Kim in further view of Kasibhatla and further in view of Alsop teaches The memory controller of claim 2, wherein the scheduler determines to perform a second switching corresponding to switching from the normal mode to the PIM mode when a number of PIM commands stored in the command queue exceeds a threshold (Alsop paragraph [0070], In many situations, PIM command sequences are relatively short and the final PIM command in a PIM command sequence is issued before the command queue 222 becomes full. In other situations, however, it is possible that the final PIM command in a PIM command sequence is not issued before the command queue 222 becomes full. This may occur for a variety of reasons, for example, a PIM command sequence is unusually long or the final PIM command in a PIM command sequence is delays. According to an implementation, deadlock of the command queue 222 is avoided by checkpointing the PIM command sequence for the active processor thread when the number of available slots in the command queue 222 falls below a specified threshold and another processor thread is selected for processing. For example, suppose that the active processor thread is TO and the number of available slots in the command queue 222 falls below a specified threshold, indicating that the command queue 222 may become deadlocked before the PIM command sequence for the active processor thread TO is completed. When the command PIM queue reaches a predetermined level, the PIM commands may be executed).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu, Madan, Kim and Kasibhatla with those of Alsop. Alsop teaches using a PIM command queue with a threshold that will execute PIM commands when exceeded. This can prevent the PIM command queue from becoming overloaded or deadlocked (Alsop paragraph [0070], In many situations, PIM command sequences are relatively short and the final PIM command in a PIM command sequence is issued before the command queue 222 becomes full. In other situations, however, it is possible that the final PIM command in a PIM command sequence is not issued before the command queue 222 becomes full. This may occur for a variety of reasons, for example, a PIM command sequence is unusually long or the final PIM command in a PIM command sequence is delays. According to an implementation, deadlock of the command queue 222 is avoided by checkpointing the PIM command sequence for the active processor thread when the number of available slots in the command queue 222 falls below a specified threshold and another processor thread is selected for processing. For example, suppose that the active processor thread is TO and the number of available slots in the command queue 222 falls below a specified threshold, indicating that the command queue 222 may become deadlocked before the PIM command sequence for the active processor thread TO is completed. To avoid deadlock, the active processor thread TO is checkpointed by storing the values in near-processing local storage to memory, or some other storage. For example, the concurrency controller 224 issues commands to store the values in near-memory processing registers to memory and the memory controller 220 ensures that those memory locations are not overwritten).
Regarding claim 4, Yu in view of Madan in further view of Kim in further view of Kasibhatla and further in view of Alsop teaches The memory controller of claim 3, wherein when the scheduler determines to perform the second switching, the control circuit controls the bank group scheduler so that a new memory request is not input to the bank group scheduler and so that a bank flush operation is performed to process all memory commands stored in the bank group scheduler (Alsop paragraph [0070], In many situations, PIM command sequences are relatively short and the final PIM command in a PIM command sequence is issued before the command queue 222 becomes full. In other situations, however, it is possible that the final PIM command in a PIM command sequence is not issued before the command queue 222 becomes full. This may occur for a variety of reasons, for example, a PIM command sequence is unusually long or the final PIM command in a PIM command sequence is delays. According to an implementation, deadlock of the command queue 222 is avoided by checkpointing the PIM command sequence for the active processor thread when the number of available slots in the command queue 222 falls below a specified threshold and another processor thread is selected for processing. For example, suppose that the active processor thread is TO and the number of available slots in the command queue 222 falls below a specified threshold, indicating that the command queue 222 may become deadlocked before the PIM command sequence for the active processor thread TO is completed. To avoid deadlock, the active processor thread TO is checkpointed by storing the values in near-processing local storage to memory, or some other storage. For example, the concurrency controller 224 issues commands to store the values in near-memory processing registers to memory and the memory controller 220 ensures that those memory locations are not overwritten. Another processor thread is selected to be the active processor thread and the PIM commands for that processor thread are processed as described herein. After that processor thread has completed, the checkpointed processor thread is selected as the active processor thread and register values for that processor thread that were saved to memory are reloaded into the registers of the near-memory processing element and processing of the PIM command sequence for that processor thread then resumes. This may be repeated for any number of processor threads as necessary to prevent the command queue 222 from becoming deadlocked. The normal (i.e., non-PIM) commands may be completely executed and cleared from the queue before the PIM commands resume).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu, Madan, Kim and Kasibhatla with those of Alsop. Alsop teaches using a PIM command queue with a threshold that will execute PIM commands when exceeded. This can prevent the PIM command queue from becoming overloaded or deadlocked (Alsop paragraph [0070], In many situations, PIM command sequences are relatively short and the final PIM command in a PIM command sequence is issued before the command queue 222 becomes full. In other situations, however, it is possible that the final PIM command in a PIM command sequence is not issued before the command queue 222 becomes full. This may occur for a variety of reasons, for example, a PIM command sequence is unusually long or the final PIM command in a PIM command sequence is delays. According to an implementation, deadlock of the command queue 222 is avoided by checkpointing the PIM command sequence for the active processor thread when the number of available slots in the command queue 222 falls below a specified threshold and another processor thread is selected for processing. For example, suppose that the active processor thread is TO and the number of available slots in the command queue 222 falls below a specified threshold, indicating that the command queue 222 may become deadlocked before the PIM command sequence for the active processor thread TO is completed. To avoid deadlock, the active processor thread TO is checkpointed by storing the values in near-processing local storage to memory, or some other storage. For example, the concurrency controller 224 issues commands to store the values in near-memory processing registers to memory and the memory controller 220 ensures that those memory locations are not overwritten).
Regarding claim 5, Yu in view of Madan in further view of Kim in further view of Kasibhatla and further in view of Alsop teaches The memory controller of claim 4, wherein when the bank flush operation has processed all the memory commands stored in the bank group scheduler, (Alsop paragraph [0070], In many situations, PIM command sequences are relatively short and the final PIM command in a PIM command sequence is issued before the command queue 222 becomes full. In other situations, however, it is possible that the final PIM command in a PIM command sequence is not issued before the command queue 222 becomes full. This may occur for a variety of reasons, for example, a PIM command sequence is unusually long or the final PIM command in a PIM command sequence is delays. According to an implementation, deadlock of the command queue 222 is avoided by checkpointing the PIM command sequence for the active processor thread when the number of available slots in the command queue 222 falls below a specified threshold and another processor thread is selected for processing. For example, suppose that the active processor thread is TO and the number of available slots in the command queue 222 falls below a specified threshold, indicating that the command queue 222 may become deadlocked before the PIM command sequence for the active processor thread TO is completed. To avoid deadlock, the active processor thread TO is checkpointed by storing the values in near-processing local storage to memory, or some other storage. For example, the concurrency controller 224 issues commands to store the values in near-memory processing registers to memory and the memory controller 220 ensures that those memory locations are not overwritten. Another processor thread is selected to be the active processor thread and the PIM commands for that processor thread are processed as described herein. After that processor thread has completed, the checkpointed processor thread is selected as the active processor thread and register values for that processor thread that were saved to memory are reloaded into the registers of the near-memory processing element and processing of the PIM command sequence for that processor thread then resumes. This may be repeated for any number of processor threads as necessary to prevent the command queue 222 from becoming deadlocked. The normal (i.e., non-PIM) commands may be completely executed and cleared from the queue before the PIM commands resume) the controller controls the command generator and the command selection circuit so that an all-bank precharge command and a Mode Register Set (MRS) command for a mode switching are provided to the memory device (Kasibhatla column 11; lines 25-44, The command/address buffer 310 may receive control signals corresponding to the command CMD from the memory controller 114 through the first channel CH1. The control signals may include, for example, a write enable signal /WE, a row address strobe signal /RAS, a column address strobe signal /CAS, and/or a chip selection signal /CS, and the command CMD may include, for example, an active command, a read command, a write command, and/or a precharge command. The command/address buffer 310 may receive an address ADDR from the memory controller 114 through the first channel CH1. The address ADDR may include a row address for addressing a row of the memory cell array 122 and a column address for addressing a column of the memory cell array 122. The command/address buffer 310 may transmit the row address and the column address to the row/column decoder 312. The controller can transmit a precharge command and a mode switch command for PIM and normal mode command operation for the memory device, for mode switching see Kasibhatla column 5; lines 3-19, According to an embodiment, the PIM agent 116 may activate and transmit the internal processing mode signal IPM to the memory device 120. The internal processing mode signal IPM may be transmitted to the memory device 120 as a combination of several signals, such as a command combination, a mode register set (MRS), or an address combination. In this case, the internal processing mode signal IPM may be transmitted to the memory device 120 through the buses and/or signal lines of the first channel CH1 between the host device 110 and the memory device 120. The internal processing mode signal IPM may allow the memory device 120 to operate in the internal processing mode. In the internal processing mode, an internal processing operation may include accessing the memory cell array 122 to perform a processing operation on the data stored in the memory cell array 122).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu, Madan and Kim with those of Kasibhatla and Alsop. Kasibhatla teaches using a PIM command queue as well as a scheduler which can implement a precharge command as well as switch between normal and PIM mode commands via a controller component. This can provide additional flexibility for the memory system allowing for faster operation mode switching improving performance (Kasibhatla column 1; lines 45-62, In order to improve the system performance, a memory device including an internal processor is developed to perform some of the computation operations of the host by internal processing. The computational workload of the host may be reduced due to the internal processing of the memory device. However, in order to prevent a collision between the internal processing and the processing by the host, the memory device may need to perform an arbiter function to determine a priority thereof. Also, the memory device may perform an operation of reading and writing in the memory device by internal processing. In this case, when data stored in a cache of the host is changed in the memory device, the data in the cache is not the latest data, whereby there may be a limitation in the coherence of cache data. Accordingly, the memory device may need to perform a virtual memory management function such as a virtual memory address translation across the host and the memory device).
Regarding claim 6, Yu in view of Madan in further view of Kim in further view of Kasibhatla and further in view of Alsop teaches The memory controller of claim 5, wherein when the MRS command is provided to the memory device, the controller controls the command selection circuit so that an output of the command queue is selected (Kasibhatla column 5; lines 3-19, According to an embodiment, the PIM agent 116 may activate and transmit the internal processing mode signal IPM to the memory device 120. The internal processing mode signal IPM may be transmitted to the memory device 120 as a combination of several signals, such as a command combination, a mode register set (MRS), or an address combination. In this case, the internal processing mode signal IPM may be transmitted to the memory device 120 through the buses and/or signal lines of the first channel CH1 between the host device 110 and the memory device 120. The internal processing mode signal IPM may allow the memory device 120 to operate in the internal processing mode. In the internal processing mode, an internal processing operation may include accessing the memory cell array 122 to perform a processing operation on the data stored in the memory cell array 122. The command may be selected from the command queue, such as in Kasibhatla column 13; lines 23-36, When the internal processing information IPI read from the memory cell array 122 includes or is an internal processing operation command IPCMD indicating a type of the internal processing operation, the internal processor 320 may store an internal processing read command PIM_READ and/or an internal processing write command PIM_WRITE constituting the internal processing operation command IPCMD in the command queue 324. The command queue 324 may store the internal processing operation command IPCMD including at least one of the internal processing read command PIM_READ and the internal processing write command PIM_WRITE).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Yu, Madan and Kim with those of Kasibhatla and Alsop. Kasibhatla teaches using a PIM command queue as well as a scheduler which can implement a precharge command as well as switch between normal and PIM mode commands via a controller component. This can provide additional flexibility for the memory system allowing for faster operation mode switching improving performance (Kasibhatla column 1; lines 45-62, In order to improve the system performance, a memory device including an internal processor is developed to perform some of the computation operations of the host by internal processing. The computational workload of the host may be reduced due to the internal processing of the memory device. However, in order to prevent a collision between the internal processing and the processing by the host, the memory device may need to perform an arbiter function to determine a priority thereof. Also, the memory device may perform an operation of reading and writing in the memory device by internal processing. In this case, when data stored in a cache of the host is changed in the memory device, the data in the cache is not the latest data, whereby there may be a limitation in the coherence of cache data. Accordingly, the memory device may need to perform a virtual memory management function such as a virtual memory address translation across the host and the memory device).
Response to Arguments
Applicant’s arguments, see page 1 (numbered page 4), filed December 4th, 2025, with respect to the rejection(s) of claim(s) 1 under 35 U.S.C. 103 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Yu et al. (US Publication No. 2022/0036929 -- "Yu") in view of Madan et al. (US Publication No. 2023/0205706 -- "Madan") in further view of Kim et al. (US Publication No. 2020/0356305 – “Kim”).
The applicant’s arguments regarding the amended independent claim 1 overcome the previous rejection and references, and now have the Kim reference attached above added. The Kim reference has been specifically added to teach the concept of changing an operation mode in response to a refresh command, as described in further detail in the rejection above. In light of the newly applied reference, the 35 USC 103 Rejection is maintained.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Chang et al. (US Patent No. 11,079,936) teaches using a PIM mode and a normal command mode, and can describe using a normal command mode for various generic memory functions, such as a refresh signal (i.e., see Chang column 3; lines 10-25, According to one or more example embodiments of the present invention, an interface of a memory device including a processor in memory, includes: a control bus configured to transfer commands from an external host to the memory device; and a data bus configured to transfer data between the memory device and the host; wherein the interface is configured to transfer the commands to set the memory device to operate in a PIM mode to compute data, and to set the memory device to operate in a normal mode to perform memory functions, and the memory device is configured to translate memory commands into logic commands to compute the data according to the logic commands when in the PIM mode, and to perform the memory functions according to the memory commands when in the normal mode. Also see column 15; lines 19-30).
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JONAH C KRIEGER whose telephone number is (571)272-3627. The examiner can normally be reached Monday - Friday 8 AM - 5 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Kenneth Lo can be reached on (571) 272-9774. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/J.C.K./ Examiner, Art Unit 2136
/ROCIO DEL MAR PEREZ-VELEZ/ Supervisory Patent Examiner, Art Unit 2133