Sarathy Jayakumar
Sarathy Jayakumar
  • 22
  • 374 414
Digital Logic: 1 - Intro to Binary
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circuit in a bread-board with discrete logic gates and 7-segment displays.
มุมมอง: 1 330

วีดีโอ

Digital Logic: 8 - Boolean Algebra
มุมมอง 895 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 3 - Intro to Gates
มุมมอง 6415 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 9 - 2's Complement subtraction
มุมมอง 1375 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 10 - Combined Adder and Subtractor
มุมมอง 1375 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 4 - Experiment 2 and 4 way staircase switch and XOR logic
มุมมอง 1985 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 2 - Intro to Hex
มุมมอง 1695 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 7 - 4 bit adder circuit
มุมมอง 9095 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 11 - 2 Bit Full Adder Built on a bread board
มุมมอง 2.2K5 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 6 - Half and Full Adders
มุมมอง 1745 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 5 - Exercises
มุมมอง 895 ปีที่แล้ว
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
System Architecture: 11 - BAR and Aperture example
มุมมอง 18K7 ปีที่แล้ว
In this video we look at an example using R/W Utility on how to discover the requested MMIO size by the device and the Bridge/Root Port aperture is programmed for the MMIO range.
System Architecture: 10 - PCIe MMIO Resource Assignment
มุมมอง 29K7 ปีที่แล้ว
In this video, we'll walk through how MMIO resources are assigned to PCIe devices.
System Architecture: 9 - MCFG Table and MMCFG based PCIe config access
มุมมอง 18K7 ปีที่แล้ว
In this video, we'll walk through an example and discuss how to find the MCFG ACPI table, extract the MMCFG base address, and access PCIe config space registers using this mechanism.
System Architecture: 8 - Sample program for accessing config registers
มุมมอง 15K7 ปีที่แล้ว
In this video, we'll use a small x86 ASM code to cycle through and discover all the devices under a PCI BUS, using CF8/CFC mechanism.
System Architecture: 7 - Accessing PCIe Config Registers
มุมมอง 47K7 ปีที่แล้ว
System Architecture: 7 - Accessing PCIe Config Registers
System Architecture: 6 - PCI Basics and Bus Enumeration
มุมมอง 113K7 ปีที่แล้ว
System Architecture: 6 - PCI Basics and Bus Enumeration
System Architecture: 5 - Transaction flows and address decoding part 2
มุมมอง 13K7 ปีที่แล้ว
System Architecture: 5 - Transaction flows and address decoding part 2
System Architecture: 4 - Transaction flows and address decoding part 1
มุมมอง 17K8 ปีที่แล้ว
System Architecture: 4 - Transaction flows and address decoding part 1
System Architecture: 3 - High Level Overview of the BOOT flow
มุมมอง 17K9 ปีที่แล้ว
System Architecture: 3 - High Level Overview of the BOOT flow
System Architecture: 2 - Legacy Region
มุมมอง 21K11 ปีที่แล้ว
System Architecture: 2 - Legacy Region
System Architecture: 1 - System Memory Map
มุมมอง 61K11 ปีที่แล้ว
System Architecture: 1 - System Memory Map

ความคิดเห็น

  • @MrVybhava
    @MrVybhava 2 หลายเดือนก่อน

    One of the best videos to understand PCIE enumeration

  • @explorewithshaa
    @explorewithshaa 5 หลายเดือนก่อน

    this series is gold !

  • @briancostello3238
    @briancostello3238 8 หลายเดือนก่อน

    This is the best presentation I have found so far on this subject matter to date. Thanks for putting in the time to spread this knowledge!

  • @MrRamsampath
    @MrRamsampath 10 หลายเดือนก่อน

    nice.video is mot clear .ca you please host again

  • @nats5886
    @nats5886 ปีที่แล้ว

    Very well explained!!! You explained the memory translation sequences in a simple and clear manner. Thanks a lot.

  • @saipraveenreddy1185
    @saipraveenreddy1185 ปีที่แล้ว

    great lecture

  • @المبرمج-د3ر
    @المبرمج-د3ر ปีที่แล้ว

    شكرا لك

  • @yogenderyadav523
    @yogenderyadav523 ปีที่แล้ว

    best explanation .

  • @gauravsinha3337
    @gauravsinha3337 ปีที่แล้ว

    Could you please also provide some insight into MMIO with SR-IOV and other dependency to have SR-IOV VFs configuration with virtual machine.

  • @gauravsinha3337
    @gauravsinha3337 ปีที่แล้ว

    It’s a very informative video. Thanks a lot.

  • @EvilSapphireR
    @EvilSapphireR ปีที่แล้ว

    Could you please explain how you set up the DOS Code debugging? Are you simply logged on to the "usermode" of DOS and it lets you directly access BIOS level constructs? Or did you set up something in between? Would love to know if this can be done in some way with modern OSs as well!

  • @EvilSapphireR
    @EvilSapphireR ปีที่แล้ว

    How does the port mapped I/O requests (via the In/OUT instructions) reach the PCI config registers in the first place? Do the motherboard vendor solder the buses coming out of the CPU into the system agent in such a way that this would always be the case (possibly following the PCI/PCIe specification?) ?

    • @yoav_1867
      @yoav_1867 2 หลายเดือนก่อน

      how are you doing, I remember you from the OST1 OG class. might be a lil too late to answer. Anyways, I asked the same question when I learned this and these are the conclusions I came up with: on a x86 system, the system itself is built on a pci "backbone". so every access to peripheral is done via pci communication first, whether directly communicating to a pci device or regular device (via a controller which is just a piece of hardware in the pch that knows how to communicates with the bus interface etc. but is ultimately pci function or really just a pci device itself). so with that in mind, there should be a pci bus protocol to communicate with everything on the system because everything is built on pci/e device chain. so what actually happens is when the system agent gets a request from the cpu to talk to a peripheral it creates a pci transaction (which is part of the protocol). if you look up the pcie transaction types you will see MMIO R/W transaction, Port IO R/W transaction, but more importantly Configuration W/R transaction. so I think what happens is when the system agent gets a port IO requests but with CFC and CF8 ports for configurations it just creates configuration transactions which the devices can understand (they built that way) instead of regular port IO transactions.

  • @EvilSapphireR
    @EvilSapphireR ปีที่แล้ว

    In case of PCI (could be PCIe as well, I haven't studied that far), the BIOS directly accesses the PCI BARs directly via port mapped I/O and sets them up with proper values to map different memory/I/O chips to different ranges in the system address map. But how does this port map I/O BAR access happen in the first place? Is the address bus soldered on the motherboard to connect to the PCI chipset in such a way that specific port mapped I/O access request always reach these BARs (according to the PCI specification)?

  • @newsgo1876
    @newsgo1876 ปีที่แล้ว

    Really hope this great series could continue. It's a treasure.

  • @newsgo1876
    @newsgo1876 ปีที่แล้ว

    It's really helpful to see with my own eyes. Thank you sir!

  • @newsgo1876
    @newsgo1876 ปีที่แล้ว

    In the eye of a CPU core, the world is just a bunch of addresses, be it memory or IO addresses. Just like a Turing machine viewing the boxes on a paper tape. It is BIOS' responsibility to properly program all the system agents and downstream decoders on the platform to route the transaction targeting a certain address to the right destination. Be it DRAM, PCI-E endpoint device, etc.

    • @EvilSapphireR
      @EvilSapphireR ปีที่แล้ว

      In case of PCI (could be PCIe as well, I haven't studied that far), the BIOS directly accesses the PCI BARs directly via port mapped I/O and sets them up with proper values to map different memory/I/O chips to different ranges in the system address map. But how does this port map I/O BAR access happen in the first place? Is the address bus soldered on the motherboard to connect to the PCI chipset in such a way that specific port mapped I/O access request always reach these BARs (according to the PCI specification)?

    • @newsgo1876
      @newsgo1876 ปีที่แล้ว

      @@EvilSapphireR It's the platform's responsibility to provide a means for software to communicate the B/D/F offset info to the silicon. As a programmer, you should focus more on what you want to convey to the platform rather than how you convey that info to the platform. Because the how varies across platforms. I remember there's a section in PCIe spec addressing the "software generation of configuration transaction". Take a look at that.

  • @santoshsco
    @santoshsco ปีที่แล้ว

    This is a superb explanation on memory mapped i/o , always go through this series for quick refresher on system side topics .

  • @dbharathi2003
    @dbharathi2003 ปีที่แล้ว

    Awesome & great explanation

  • @ms6063
    @ms6063 2 ปีที่แล้ว

    clear !! nandri

  • @bmos64b87
    @bmos64b87 2 ปีที่แล้ว

    Hello Sarathy, are you able to help me out with the full breakdown of MCFG Table please ?, I am unable to locate any manual after scouring online for days. Thank you so much.

  • @virupakshic.m2918
    @virupakshic.m2918 2 ปีที่แล้ว

    Sir quick question - When we power ON, the execution starts at FFFF FFF0h (4GB-16) bytes but the CPU will operate in real mode where it can access 16bit address space then how it can access FFFF FFF0h which is 32bit address space?

    • @shubham_k
      @shubham_k 2 ปีที่แล้ว

      For 16 bit CPUs, the reset vector is FFF0.

  • @Mr_ST_720
    @Mr_ST_720 2 ปีที่แล้ว

    Thanks so much sir from Maharashtra

  • @pavandn
    @pavandn 2 ปีที่แล้ว

    Excellent explanation. I was trying to dig through so many books and info but was unable to get the exact info I needed. But your videos provided most of the info I needed.

  • @belaamg
    @belaamg 2 ปีที่แล้ว

    Best video ever, so clear

  • @argaz3
    @argaz3 2 ปีที่แล้ว

    Thank you so much for this comprehensive series. The knowledge of those topics is spread over lots of sources and specifications so it's very convenient that you managed to summarize it in this series, that was an awesome contribution!

  • @dhineshsasidaran4310
    @dhineshsasidaran4310 2 ปีที่แล้ว

    DMI = Direct Media Interface

  • @vinayakgujjar9655
    @vinayakgujjar9655 2 ปีที่แล้ว

    Thank you for your efforts in making this video. It helped.

  • @atulct
    @atulct 3 ปีที่แล้ว

    Excellent Knowledge sharing videos. This is great knowledge Sarathy that you have gathered and now sharing with everyone.

  • @dhanasekaranvenugopal7125
    @dhanasekaranvenugopal7125 3 ปีที่แล้ว

    Thanks and appreciate the knowledge shared in a clear and concise way. This series is a great resource to get started with a clear understanding of the enumeration of PCIe devices.

  • @santoshsco
    @santoshsco 3 ปีที่แล้ว

    loving the videos keep up the good work . Got clear idea on computer architecture

  • @santoshsco
    @santoshsco 3 ปีที่แล้ว

    Thanks sarath for the detailed description of POST operation in the system .

  • @santoshsco
    @santoshsco 3 ปีที่แล้ว

    excellent explanation

  • @anandbb1
    @anandbb1 3 ปีที่แล้ว

    Clear & Simple explanation. Than you @Sarathy Jaykumar!

  • @Lovertube1987
    @Lovertube1987 3 ปีที่แล้ว

    is this flow also Includes POST?

  • @neerajvishwakarma9021
    @neerajvishwakarma9021 3 ปีที่แล้ว

    Very good explanation to understand the basics of config space handling in PCIe

  • @CD-dm7sf
    @CD-dm7sf 3 ปีที่แล้ว

    Re. writing (0xFFFF_FFFF) and reading back the BAR to figure out the size of the (memory) region the device requests to be mapped to system address space, note the following with the example of the device requesting 4KB space (4096 bytes) 1.Lower 4 bits of the BAR are read only, i.e. each BAR is 32 bit , out of which first 4 bit 3:0 are always Read Only. 2. It would be wise to save the BAR value before writing to it. 3. Write 0xFFFF_FFFF & read it back, value read = 0xffff_f00X 4. Clear the last 4 bits - they are read-only, typically will be read back as 0's after step (3), value read = 0xffff_f000 5. Invert the value in (4) and add 1: value = 0xfff + 1 = 0x1000 = 4096 Due to the nature of the above mechanism, the min space the system allocates to device memory will be 16 bytes - corresponding to the 0's in bits[3:0] i.e. if for some reason the device requests anything less than 16 bytes, it will still be allocated 16 bytes in the system address map. Practically this hardly happens given that modern systems with 32-bit registers & addressing in place; but good to be aware of if one runs into a resource constrained scenario

  • @IamBananas007
    @IamBananas007 3 ปีที่แล้ว

    a great series! I would watch a dozen more of these in a heartbeat! if you have them recorded, please release them :)

  • @thangam1096
    @thangam1096 3 ปีที่แล้ว

    I got a doubt Enumeration will done in GEN1 L0 or at max data rate if it supports?

  • @Xyliant
    @Xyliant 3 ปีที่แล้ว

    Is there a book detailing more information on this subject that you learned from? Where did you get this information from? Like the video by the way, very detailed and conveyed in a manner everyone can understand!

  • @thangam1096
    @thangam1096 4 ปีที่แล้ว

    I got a doubt why Type 0 config space has 6 BARS and Type 1 has 2 BARS

  • @ΝικόλαοςΜελάς-π2γ
    @ΝικόλαοςΜελάς-π2γ 4 ปีที่แล้ว

    Nice and clear explanations from an excellent engineer. Thank you :-)

  • @cutepriyanshi29
    @cutepriyanshi29 4 ปีที่แล้ว

    great series.. Thank you so much

  • @smwikipediasmwikipedia5762
    @smwikipediasmwikipedia5762 4 ปีที่แล้ว

    Finally I understand the logic of MMIO. THANKS!

  • @smwikipediasmwikipedia5762
    @smwikipediasmwikipedia5762 4 ปีที่แล้ว

    This is so precious. Please CONTINUE! THANKS!

  • @smwikipediasmwikipedia5762
    @smwikipediasmwikipedia5762 4 ปีที่แล้ว

    It is a such a good deed.

  • @govindsurti7591
    @govindsurti7591 4 ปีที่แล้ว

    This is a very good PCI refresher series! You mentioned that the root port stores the range of MMIO addresses assigned to downstream devices. During BIOS, the enumeration process can make sure that all downstream devices get consecutive MMIO spaces assigned. The range values in the root port can be accurately programmed. What happens if at a later stage, one of the downstream devices is removed and another one, which requires significantly more MMIO space, is hot-plugged in? The MMIO space assigned to this new device might not be adjacent to other sibling device. How does the root port store the (now fragmented) range?

  • @shawnkim9317
    @shawnkim9317 4 ปีที่แล้ว

    plz continue this series

  • @ram3258
    @ram3258 4 ปีที่แล้ว

    thanks for good video

  • @amarnathbaliyase7665
    @amarnathbaliyase7665 4 ปีที่แล้ว

    Any source for PCIe code understanding?

  • @SearchingPeaceInside
    @SearchingPeaceInside 4 ปีที่แล้ว

    Excellent videos