MIPS/Pipeline regarding unique Data & Instruction memory [closed] - memory

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
How does having unique Data & Instructions memory affects us to the standard 5-stage Pipeline?What about with & without Forwarding?
What's the advantage of having a different memory for each?

Regardless of having Forwarding, if you only have one port to access memory (e.g. unique Data & Instruction memory bus) and to simplify let's say there is no cache in the system (so every memory access needs to use the memory unit) then every instruction that needs the MEM stage to use the memory bus will generate a structural hazard, as the CPU won't be able to perform the FETCH and MEM stages in parallel because they both need to access memory.
If instead you have two ports to access memory (e.g, one for Instructions and another for data), then the structural hazard noted above will be avoided as each memory-access stage will use its own bus+memory.

Related

Design of HA, consistent and responsive counter [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
Lets say flipkart launched a exclusive redmi sale by 12PM, stock is 10K but more people will access at same time. There are adv and disadv of keeping the counter in single machine or distributed. If we keep it in some in-memory data store single machine, the machine will become bottleneck as many app machines will retrieve at same time, have to consider memory and cpu for queueing those requests. If its distributed across nodes and machines access different nodes, here we eliminate bottleneck, but a update in node has to be consistent across nodes, this will also affect response time. What can be the design choice for the same?
Yes, a single machine counter will be really a performance bottleneck during intensive load and a single point of failure as well. I would suggest to go for a sharded counter implementation.

Monitor and/or log the performance of a specific application (not all system) in Windows 7 [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I need to keep track of peak memory usage, and average memory usage, CPU time of a specific application. I know there is Windows' perfmon tool, but it keeps record of all the system, but I need to keep record of just one specific application. I also tried kiwimonitor app, it does not provide precise result.
Do you know how to filter perform tool to just keep record of single application's performance statistics? Or is there a useful tool I can use for that purpose?
You can create a user defined data set (under Data Collector Sets) and limit your performance counters for a specific process. Once you select a process object, choose what process you want to monitor and the counters for that specific process.

Copy on write and fork()? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
In a system with paged memory, where Copy On Write technique is used, a process creates a new process with fork() call.
Right after creation, the new process tries to write something in the memory. Which error will the CPU generate - page fault or something else?
As far as i know, when copy on write is used, that means that common data is not copied, but when we use fork(), when a new process tries to write in a certain page, that pages stops being shared, and the process created with fork gets a copy of the page so it can write in it.
So, i'm a little confused will the processor generate an error at all?
Page faults are generated by the processor the first time a copy-on-write page is written to, but the fault is handled by the kernel (just like faults on pages that are swapped out or zero-filled). It isn't passed on to userspace.

Quad-port ram from single or double port ram? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
In a design I am currently working on, I need quad port ram. However implementing it in lookup tables is using a massive amount of area and I cant reach the needed performance with that setup. Since, my FPGA has hardware blocks for single and dual port ram, is there anyway I can combine them to make quad port memory?
You could consider double-clocking the block RAM, although this will have implications for timing, etc.
See e.g. http://www.xilinx.com/support/documentation/application_notes/xapp228.pdf.
If you only need quad read access, then you just need two dual-port block RAMs, both connected to the same write-enable and write data.

Is there a way that I can use the 100% of my network bandwidth with only one connection? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 5 years ago.
Improve this question
I have a program that reads about a million of rows and group the rows; the client computer is not stressed at all, no more than 5% cpu usage and the network card is used at about 10% or less.
If in the same client machine I run four copies of the program the use grow at the same rate, with the four programs running, I get about 20% cpu usage and about 40% network usage. That makes me think that I can improve the performance using threads to read the information from the database. But I don't want to introduce this complexity if a configuration change could do the same.
Client: Windows 7, CSDK 3.50.TC7
Server: AIX 5.3, IBM Informix Dynamic Server Version 11.50.FC3
There are a few tweaks you can try, most notably setting the fetch buffer size. The environment variable FET_BUF_SIZE can be set to a value such as 32767. This may help you get closer to saturating the client and the network.
Multiple threads sharing a single connection will not help. Multiple threads using multiple connections might help - they'd each be running a separate query, of course.
If the client program is grouping the rows, we have to ask "why?". It is generally best to leave the server (DBMS) to do that. That said, if the server is compute bound and the client PC is wallowing in idle cycles, it may make sense to do the grunt work on the client instead of the server. Just make sure you minimize the data to be relayed over the network.

Resources