0

schematic

simulate this circuit – Schematic created using CircuitLab

The basic data structure for the machine I want to build is a shift register. Quite some time back someone told me that if I could implement it without a master/slave architecture then I really should. So I came up with the following schematic for a shift register of four bits. I'm banking rather heavily on my ability to time each assertion of (shift) just long enough to move each bit of data from one position to the right, perhaps a little over two transistor delays, and definitely less than three transistor delays.

I may be able to get this to work for four bits, but my machine is going to need a shift register as large as four billion bits long to do what it needs to do. If I extend this schematic to four billion bits, can I realistically expect to be able to assert (shift) long enough to move each of the four billion bits just one position to the right and no further?

This article was marked as a duplicate of another article, and I was told that if I disagreed that it was a duplicate I should edit it to point out why it's not a duplicate. The original article used BJTs instead of MOSFETs. I was told that the output of M1 and M2 couldn't be amplified by M3. I changed all the BJTs to MOSFETs in an attempt to fix that, but nobody commented on the change. So I started this article out with MOSFETs instead of BJTs in order to prompt people to tell me what's wrong with my design, to tell me why it won't work as a shift register. That's the difference from the original article.

KevinSim
  • 353
  • 6
  • 13
  • Kevin, Not at all sure what you are saying.1] Are you building your own shift register out of discreet transistors? 2] When you say 4 billion bits are you referring to the length of the register or the width of the register? 3] What are you trying to accomplish? 4] Have you considered using a micro-controller? – xstack Oct 22 '19 at 02:19
  • Do you think your shift input will be able to drive eight billion transistors? – Finbarr Oct 22 '19 at 06:42
  • 1
    That is very inefficient. You are changing the position of every bit each clock. A much better way would be to use a circular buffer. You only change (write) one bit at a time. By the way is your billion 10e9 or 10e12? Even if it is 10e9 you would need ~125Mbyte of data which gets you in to the DRAM storage range. – Oldfart Oct 22 '19 at 07:24
  • We already discussed this circuit. If it doesn't work for 4 bits, why would it work for 4 billion bits? – Dave Tweed Oct 22 '19 at 12:24
  • xstack, in response to your questions, 1] yes, 2] I'm not entirely sure what you mean, but I think I'm referring to the length of the register, not the width, 3] I'm trying to use a lot of parallelism to sort data quickly and inexpensively, and 4] the micro-controller would have to be massively parallelized to get the effect I want, and I think doing it the way I'm thinking about it will be less expensive. – KevinSim Oct 23 '19 at 18:48
  • Finbarr: "Do you think your shift input will be able to drive eight billion transistors?" I'm asking if that is possible, and why not if it's not. If I'm not mistaken, a clock on a microprocessor can send a signal to a pretty large number of flip flops in a cache, so why couldn't a voltage source be connected to a large number of my bit storers? – KevinSim Oct 23 '19 at 18:59
  • Oldfart: "That is very inefficient. You are changing the position of every bit each clock." Yes, I am. "A much better way would be to use a circular buffer. You only change (write) one bit at a time." Can you tell me how I could do that? "By the way is your billion 10e9 or 10e12?" It's 10e9. Even if it is 10e9 you would need ~125Mbyte of data which gets you in to the DRAM storage range." I spent a little bit of time trying to see if I could use a DRAM to do what I want, but I'm pretty sure I can't. – KevinSim Oct 23 '19 at 19:05
  • Dave Tweed: "We already discussed this circuit. If it doesn't work for 4 bits, why would it work for 4 billion bits?" I thought I had made changes to my design to resolve your concerns. All the transistors are MOSFETs now, not BJTs. Someone (was it you?) said M3, M6, M9, and M12 couldn't amplify voltage, but if they're MOSFETs they can amplify voltage, can't they? If this circuit doesn't work for four bits, why doesn't it? – KevinSim Oct 23 '19 at 19:10

0 Answers0