“You know what I like better than being right? Absolutely nothing.”
This phrase came up in the training class that I took this week, and I think that it sums up the mentality of taking the course quite well. Even so, I think it’s going to take some explanation.
The corollary of that phrase is also true: there’s are very few feelings that seem worse than being wrong. Demonstrably wrong. Flat-out wrong. It’s hard to place just where the source of that soul-death happens, but when it does it sometimes feels – inside – like a little bomb has gone off and this guy is standing right behind you every time you open your mouth.
Here’s the thing, though.
I was never very good in the classroom. Well, actually, I was rarely very good in the classroom. I was always the kid who hated being in school, hated being in class, hated being forced to live within the time restrictions that structured learning forced down my throat. I did okay in school, but having gone to 12 different schools by the time that I graduated from the 12th grade (military life, ya know) gave me such an eclectic view of the world that I cannot say the experience was positive.
Training is Different
By all rights going to training should be the same. Stuck in a room for nearly a week, starting early, leaving late, needing to sit still…
And yet, there is a difference when I sit through a training course that is devoted to a technology that I not only like, but that I actively want to learn, and have an excellent instructor to help pour that information into my stubbornly resistant brain.
I want to be a sponge, but sometimes my sponge is made of stone, and I need a really good trainer to help get it all retained.
This past week, I was fortunate enough to experience the perfect storm of learning – my own motivation was high, the technology interest was high, and the trainer’s ability was phenomenal.
In fact, if there was only one complaint (which isn’t really a complaint), it’s that I wish that I had one more day to go back and make sure that I was more confident about all the moving pieces in the technology. But that’s more on my sponge-made-of-stone mind than anything relevant to the coursework or instructor.
If you’ve ever read anything I’ve written, or even explored this site, you’ll know that I’m a “storage guy.” I do a lot of writing about different storage technologies, and have been known (at least, I think this is my reputation!) as someone who does a good job turning Tech into English.
I am well-aware, however, that I do not know everything. Hell, the more I learn, the more it feels like I never knew anything at all! It’s something of an existential crisis, actually. (You can read my article on Soft Skills if you want to know what I mean by that).
When the opportunity came up to take a training course from Teledyne-LeCroy on PCIe and NVMe, I knew I had to jump at the chance.
“Why are you doing that?” one of my colleagues asked. “You already know everything about NVMe.”
Oh my, no. Not even close. No one knows everything about NVMe. Most of the people who work on NVMe in the technical working group don’t actually participate. There are probably 10 or 12 hard core contributors into the spec, and no one works on the base spec, Fabrics, management, and interoperability at the same time.
Let me repeat: No one knows everything there is to know about NVMe.
Least of all me.
With my work in storage networking, I gravitated to the NVMe over Fabrics work quite naturally, but in my world I have always had a make-it-till-you-fake-it relationship with PCIe. Think of it this way – can you read through the Base NVMe specification and understand everything that’s being written? No? Then perhaps it may be okay to ask for a better understanding.
The Time is Now
There comes a point in time when you need to look up from the grindstone and see what’s coming your way. In this case, one of the important aspects of technology that will be making a big deal this year and in the years to come is computational storage.
Computational Storage has a variety of possible use cases, but one in particular of interest is how it fits in with the emerging memory fabrics, such as CXL and Gen-Z. With the type of persistent memory available on those fabrics, NVMe is a key component as a storage interface.
All of these technologies either work with, ride on, or are alternatives to, PCIe.
So, it’s best to start getting my act in gear and ‘fess up – I need to be “better” at PCIe, and I need to start now.
Oh, and if what I just wrote sounds like word-salad? Don’t worry. As part of my little journey, I’ll be happy to bring you along if you need to by explaining how all of these alphabet soup acronyms play out.
Back to the Training
What I needed was to fill in some pretty serious gaps. Let me put it another way.
If you’ve ever tried to learn another language that uses a different alphabet, it might be a bit easier to understand where I’m going with this.
Say you want to learn Russian, or Chinese, or Japanese, or any other language where it’s impossible simply to pick up a book and sound out the letters to understand the words, but you can pick up a travel phrase book and (more or less) get your pronunciation down well enough to be understood.
For me, that was what PCIe has been. Whenever I needed to understand how NVMe worked when using PCIe, I effectively picked up the phrase-book equivalent and was able to “get by.” As you get more involved in knowing what you want, though, there comes a point in time when you need to know when you need to know that you want гриб (“greepb,” mushrooms) on your pizza rather than грипп (“greep”, influenza)!
In any case, I realized I was at that stage where if I wanted to get better at NVMe, especially as it relates to the new technologies coming out, I needed to get better at PCIe.
That’s when the opportunity to take Teledyne-LeCroy’s PCIe/NVMe class came up.
Was it Good?
For someone like me, who needs repetition and an active instructor, it was amazing. There was quite a bit of time spent on layering the information, so that you didn’t have to swallow the ocean. The crucial parts were repeated enough times that people were able to learn the material, but never got to the point where it was busy work.
The content of the course is precisely what it claimed it would be – NVMe using PCIe transport, in all its guts and glory. In order to know that, you have to start with PCIe, which is precisely what we did. Every TS1, TS2, and DWORD was discussed in all it’s gory detail. Why? Because it’s the foundation (that alphabet) that everything else is built upon. From the signals sent across the physical wire, all the way up through the PCIe stack, and finally into those pesky NVMe submission queue entries (and completions, of course – those Submission Queue Tail Header Pointers aren’t going to update themselves, now are they!?).
Because Teledyne-LeCroy makes analyzers, we were able to use the software to actually see all of this in color-coded brilliance. We could marry the concepts learned in the class in the analyzer output. They had matched the color codes in the training text with the colors that you would see in the output (which seems like a logical thing to do, but when I was at Cisco I was often amazed at how inconsistent some of the material could be when describing a theory of operation versus actual output in the GUI).
Suddenly, the output of a powerful analyzer isn’t quite so scary.
The most important part, though, was that the instructor – Stephen Scott – made sense. It’s really difficult to put into words just how critical this is. There are very few trainers out there that I can say have this skill as a native talent (and I’m extremely grateful to know them!), and Stephen ranks up there as one of the best. Hands down.
Those of you who have done training for a living know how difficult it is to get the balance right – the pacing, the content, the review, controlling the timing, managing the attendees (there’s always “a guy” who knows his stuff and whats to help!), and still managing to keep the session engaging and make the material stick. To those trainers out there, let me tell you – Stephen has got it down.
If you are planning on doing anything with computational storage, memory fabrics, or even just need to get your head wrapped around how to order that NVMe pizza correctly, I cannot recommend this course (and instructor) more highly.
Oh, and no one tried to sell me an analyzer.
How To Get Trained
As of this writing, the next training class that Stephen and Teledyne LeCroy is running is March 16-19, 2020, at their offices in Milpitas.
I’m well aware that these blogs are time-sensitive, so that link will rapidly lose its value over time. So, it’s probably best to look at their full list to see what’s going on. I do know that they also do private training (just for you and your company/friends) if you’ve got enough people to attend. In any case, it’s well worth the investment of time/money.
Every once in a while the stars align and you can give a positive review of something that was highly useful and valuable. In my case, taking this kind of technical seminar was precisely what I needed, when I needed it.
I understand that not everyone wants or needs the level of depth that this kind of training provides, but given the number of questions that I get on a regular basis, there appears to be more and more people wanting to make that pizza.
There are very few really good places to go for information, and that alone is worth stepping up to the plate and recognizing it when it happens.
[Disclosure: Teledyne-LeCroy did not ask for a review, nor did they provide any compensation or even know I was writing this at all.]